contentとcourseというカラムを持つテーブルがあり、course一覧(重複したものはひとつとして)をmessages/indexに表示し、それぞれをlink_toでリンクにして、クリックすると、各courseのmessage一覧(message/show)を表示させたい。
params[:course]は渡せているようで、message/show/[:course]をURL直接入力すると、問題なく表示できてます。
ただ、link_toを使おうとすると、NoMethodErrorがでてしまい、リンクできていない状況です。
コードは下記の通りです。
rb
1#show.html.erb 2<h1> <%= @message_course %>の掲示板</h1>
rb
1#index.html.erb 2<h2>course毎のメッセージ</h2> 3<div> 4 <% @message_course.each do |c| %> 5 <span><%= link_to c, every_course_message_path %> </span><br> 6 <% end %> 7</div>
rb
1#messages_controller.rb 2 def index 3 @every_course = Message.distinct.pluck(:course) 4 end 5 def show 6 @message_course = params[:course] 7 end
rb
1#routes.rb 2messages_index GET /messages/index(.:format) messages#index 3every_course_message GET /messages/show/:course(.:format) messages#show
ルーティングは問題なくて、link_toの書き方が悪そうとは思うのですが、どう書いたら良いかわからず困っております。
paramsの使い方がいまいち理解できておらず、ヒント等頂ければと思います。
説明不足かもしれませんが、何卒宜しくお願い致します。
わからないところがはっきりしました。
ルーティング
every_course_message GET /messages/show/:course(.:format)
に対し、
link_to c, every_course_message_path
でこのパスにparams[:course]を渡したいのですが、渡し方がわからない状況です。
回答1件
あなたの回答
tips
プレビュー