Rails 変数をcontrollerで入力するとき paramsがセーブできないときのエラー
変数をcontrollerで入力するとき
paramsがセーブできないときのエラー
create(saveというメソッドも同時にしてしまうメソッド)ではなく、
そこでbuildを使ってからsaveさせる。
元のコード:
def create
@user = current_user
@question = Question.find(params[:question_id])
@answer = @question.answers.create(answer_params)
@answer.user_id = @user.id
end
エラー:エラーメッセージはでないがparamsが渡されていない。
理由:あとから書いた代入の式の結果(@answer.user_id = @user.id)はsaveされない。
直したコード:(controller内)
def create
@user = current_user
@question = Question.find(params[:question_id])
@answer = @question.answers.build(answer_params)
@answer.user_id = @user.id
if @answer.save
redirect_to user_question_path(@user, @question)
else
raise
end
end