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