我on Rails的4.1运行Ruby和我想实现一个功能,当他们通过提供一个执行动作将用户重定向到自定义网页redirect_uri
参数。 换句话说,我想“触发”每次重定向redirect_uri
值存在于params
和重定向应在任何情况下发生(例如,当GET,POST,PUT和DELETE HTTP请求与HTML或JS格式执行)后的处理流程已经完全完成(例如,当HTTP动词是POST然后重定向应该提交后发生)。
奖金 -如果可能的话,我想验证URL(例如,链接正确性)的情况下,当引荐网址来自应用程序域之外。
我应该怎样做是正确的方法是什么?
从这个讨论 ,一旦你的行动遇到redirect_to/render
陈述,请求流量将是完整和after_action
重定向可能不会trigerred。
如何创造一个像一个控制器动作custom_redirect_to
为:
class ApplicationController < ActionController::Base
def custom_redirect_to(url)
redirect_to (params[:redirect_uri].present? ? params[:redirect_uri] : url)
end
end
然后在你的控制器动作,而不是使用此方法redirect_to
是:
def create
@post = Post.new(params)
if @post.save
custom_redirect_to @post
else
render 'new'
end
end
文章来源: How to redirect users to a custom web page each time `params` contain a `redirect_uri` value?