A'挑战' show.html.erb页面列出了该挑战的所有双关语,并在每个双关语下我渲染所有Pun的评论。在双关语下是添加评论按钮。
“添加评论”表单页面包含网址:
http://localhost:4000/puns/109/comments/new?challenge_id=22&user_id=2
所以我可以看到challenge_id正在使用
我的问题是在我提交评论(已成功发布)之后,我无法确定如何重定向到挑战显示页面。
def create
user_id = current_user.id if current_user
respond_to do |format|
if @pun.comments.create!(comment_params.merge(user_id: user_id, pun_id: @pun.user_id))
format.html { redirect_to @challenge }
else
format.html { render :new, notice: 'Comment not saved. Something went wrong.' }
format.json { render json: @challenge.errors, status: :unprocessable_entity }
end
end
end
我得到的错误是
ActionController::ActionControllerError in CommentsController#create
Cannot redirect to nil!
答案 0 :(得分:0)
好的,我明白了。我没有将挑战的ID提供给路径。
答案:
redirect_to challenge_path(@pun.challenge_id)