ruby on rails4で商品画面から商品のクチコミを書き込んだユーザ名からユーザの詳細ページに飛ぶようにページを作りました。ユーザ詳細ページはcontrollerでdef
show_user_detailと定義しました。
#やりたいこと
詳細ページに飛んだときに商品画面ページで使っていた値を詳細ページでも使いたい
以下はcontrollerです。
ruby
1def show 2 #render plain: params[:id].inspect 3 4 @r = Project.joins("LEFT OUTER JOIN reviews ON projects.id = reviews.project_id LEFT OUTER JOIN user_items ON user_items.user_id = reviews.user_id").where("reviews.project_id = ?" , params[:id]).select("reviews.* , user_items.*") 5 6 end 7 8 def show_user_detail 9 #render plain: params[:user_id].inspect 10 11 @r = Project.joins("LEFT OUTER JOIN reviews ON projects.id = reviews.project_id LEFT OUTER JOIN user_items ON user_items.user_id = reviews.user_id").where("reviews.project_id = ?" , params[:id]).select("reviews.* , user_items.*") 12 13 end 14
showの方だと、@rが取得できて、クチコミユーザの名前も表示できているのですが、show_user_detailの方ではまったく同じActiveRecordの内容でも取得できません。showで取得した@rをshow_user_detialでそのまま使えるようにしたいのですがどのように書けば取得結果を持ち回れるでしょうか。
show.html.erb(view)
ruby
1 <% @r.each do |userlist| %> 2 <%= link_to userlist.user, projects_show_user_detail_path(@r) %> 3 : 4 <%= add_star %> 5 <b><%= userlist.star %></b> 6 <%= userlist.review %> 7 <br> 8 <% end %> 9
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。