2つのテストでこのエラーが発生しました。
test "should create question" do
assert_difference('Question.count') do
post :create, question: { question: 'apple', answer: "good", holder_id: 2}
end
end
test "should not create question" do
invalid_answer = "a" * 145
assert_difference('Question.count',0) do
post :create, question: { answer: invalid_answer }
end
assert_template 'new'
end
私の作成アクション
#create action
def create
@question = Question.new(params[:question])
@holder = Holder.find_by_id(@question.holder.id)
if @question.save
flash[:success] = "Question Saved"
redirect_to holder_path(@question.holder_id)
else
render 'new'
end
end
スタックトレースは、両方の時間で作成行にあることを示しています。しかし、どうしてCalled id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
エラーが発生するのでしょうか。
最初にオブジェクトを作成してから、それをpost createに渡す必要がありますか?