Ruby on Rails の link_to 構文
-
23-08-2019 - |
質問
フォローした後、 チュートリアル 見つけました。より良く学ぶために、足場の部分を除いてもう一度やり直しています。
ただし、\app\views\home\index.html.erb を編集して次の内容を含めます。
<h1>Rails test project</h1>
<%= link_to "my blog", posts_path>
エラーが発生します:
undefined local variable or method `posts_path' for #<ActionView::Base:0x4e1d954>
これをする前に、私は走った rake db:create
, 、移行クラスを定義して実行しました rake db:migrate
, 、すべて問題なく。
したがって、データベースにはpostsテーブルが含まれている必要があります。でもあの link_to
コマンドが見つからないようです posts_path
. 。その変数 (あるいは関数でしょうか?) は、おそらく scaffold ルーチンを通じて定義されます。
私の今の質問は次のとおりです。自分で手動で行うにはどうすればよいですか、定義します posts_path
?
解決
あなたはconfig/routes.rb
にあなたの記事へのパスを定義する必要があります。
のRails 2.xの構文ます:
map.resources :posts
のRails 3.xの構文ます:
resources :posts
他のヒント
_path方法は、動的に、典型的に生成されます。あなたが明示的に呼び出しているメソッドを指定したか、この場合、オブジェクトへのルートがない場合の方法欠け誤差は約来ます。
この問題を解決すべきルートを定義します。これを実行する1つの方法を示した上でHermanDます。
あなたが設定されているすべてのルートを確認するためにあなたのレールのアプリのルートから「すくいルート」を実行することができます。
<%= "私のブログ" へのリンク、投稿_パス>
これが erb に含まれている内容とまったく同じである場合、スクリプトレット要素の末尾にパーセント記号がありません。それが問題の原因なのか、それとも私が物事を文字通りに捉えすぎているのかわかりません...