如何确保在重定向中传递ID

时间:2018-05-26 03:06:38

标签: ruby-on-rails redirect routes

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!

1 个答案:

答案 0 :(得分:0)

好的,我明白了。我没有将挑战的ID提供给路径。

答案:

redirect_to challenge_path(@pun.challenge_id)