【发布时间】:2013-10-24 16:16:49
【问题描述】:
我经常在某些网页中有一个表单,用户提交到 Rails 中的 POST、PUT 或 DELETE 操作,如果提交成功,我希望它重定向到指定的 URL。我通常会创建一个名为to 的隐藏额外参数,其路径类似于/users。因此,如果表单提交失败,它只会停留在该表单上,但如果成功,则浏览器将重定向到 /users。
如果表单提交在 any 控制器/操作中成功,我想自动查找此参数并始终重定向到它。我是否将其放在ApplicationController 中的after_action 中?
class ApplicationController < ActionController::Base
after_action :redirect_if_success
private
def redirect_if_success
redirect_to params[:to] if params[:to]
end
end
如果这是一个 POST、PUT 或 DELETE 操作,我想我可以检查请求对象。我怎么知道提交是否成功? after_action 中的 redirect_to 会覆盖表单控制器中的任何 redirect_tos 吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.2 ruby-on-rails-4 actioncontroller applicationcontroller