###前提・実現したいこと
現在railsでユーザーが投稿したもの(review)に対して他のユーザーがコメントすることができるという機能を実装しています。コメントしたあとはredirect_toですぐに画面に反映されるようになっています。そこで今回、あらたにユーザーが異なる種類の投稿(post)をできるようにするために、あたらしくテーブルを作成しました。そこで問題なのがテーブル二つに対してcommentのcreateアクションが一つしかないために、リダイレクトのところでエラーが起きています。うまくreviewとpost両方の画面でredirect_toで画面を更新したいです。
def create @comment = Comment.create(text: comment_params[:text], review_id: comment_params[:review_id], user_id: current_user.id) redirect_to "/reviews/#{@comment.review.id}" end private def comment_params params.permit(:text, :review_id) end end
ここにpostのビューファイルでコメントを表示させるために下記のように書き換えてみました。
###該当のソースコード
class CommentsController < ApplicationController
def
1 @comment = Comment.create(text: comment_params[:text], review_id: comment_params[:review_id], post_id: comment_params[:post_id], user_id: current_user.id) 2 if review_id = nil 3 return redirect_to "/reviews/#{@comment.review.id}" 4 else 5 return redirect_to "/posts/#{@comment.post.id}" 6 end 7 end 8 9 private 10 def comment_params 11 params.permit(:text, :review_id, :game_id) 12 end 13 14end
###試したこと
review_idとpost_idの有無で条件分岐ができるのかなと考え、このように書いてみたのですが、idに対してundefined method errorが出てしまいます。
###補足情報(言語/FW/ツール等のバージョンなど)
ruby
rails 4.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/13 04:34
退会済みユーザー
2016/11/13 04:36
2016/11/13 05:54
退会済みユーザー
2016/11/13 05:56