0

このページにアクセスすると /articles/1/comments

これが機能しない理由 (views/comments/index.html.erb)

<% @comments.each do |comment| %>
<%= link_to "show", article_comment_path(comment)
<% end %>

そしてこれは?

<% @comments.each do |comment| %>
<%= link_to "show", article_comment_path(@article, comment)
<% end %>

ルート.rb

resources :articles
  resources :comments
end

ルートヘルパーは、現在のコンテキストで記事を使用したいと推測するのに十分スマートだと思います...

マジックはとても素晴らしいものですが、それが魔法であると期待して多くの時間を費やし、そうではない場合を除きます :P

4

1 に答える 1

1

あまり期待できません。このようにして、インスタンス変数、つまり単純なパラメーターを自由に使用できます。link_to ヘルパーは、コントローラーのコンテキスト外でも使用できます。さらに、可能なパラメータのリストは動的です。パラメータを 1 つ指定すると、どのパラメータを指定したかを知る方法がありません: 記事ですか? コメント?

次のように書くことができることに注意してください。

link_to "show article", @article
link_to "show comment", [@article, comment]

お役に立てれば。

于 2012-08-05T21:20:06.553 に答える