如何检查Rails中提交表单的页面?

时间:2015-12-10 03:12:54

标签: ruby-on-rails forms

我在其他模型的几个关联中使用了注释模型。关系总是相同的:评论“属于”另一个模型的项目,而其他模型“有很多”评论。

我正在其他模特的节目页面上呈现评论表格,如下所示:

<%= render "comments/form" %>

当用户点击提交按钮时,我希望将他重定向到不同的页面,具体取决于他之前所在的页面。当我搜索解决方案时,我通过APIdock找到了current_page? ActionView助手(参见http://apidock.com/rails/v4.2.1/ActionView/Helpers/UrlHelper/current_page%3F)并且认为在评论控制器中使用它是个好主意:

respond_to do |format|
  if (@comment.save) && (current_page?(controller: 'game', action: 'show'))
    format.html { redirect_to game_comments_url, notice: 'Comment was successfully created.' }
    format.json { render :show, status: :created, location: @comment }
  elsif (@comment.save) && (current_page?(controller: 'comment'))
    format.html { redirect_to @comment, notice: 'Comment was successfully created.' }
    format.json { render :show, status: :created, location: @comment }
  else
    format.html { render :new }
    format.json { render json: @comment.errors, status: :unprocessable_entity }
  end
end

但遗憾的是我收到以下错误消息:

undefined method `current_page?' for #<CommentsController:0x007f67fe42e1a0>

如果有人可以向我提供我可以找到的解决方案,在哪个页面上提交特定表单,或者至少是如何将用户重定向到不同页面的方式,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

request.referrer是一个视图助手,因此在控制器中不可用。

您可以通过控制器中的{{1}}获取引荐网址