我有一个控制器,它有几个方法,其中一个在最后有一个重定向。
def launch
do_something
params[:hey] = "heyo"
redirect_to("/tasks")
end
所有操作都有一个before_filter,用于设置一些访问控制标头。 我想要的是什么;
我希望在“启动”方法过滤之前使用此功能,但不能在其中进行重定向。 我怎样才能做到这一点?
当我在下面设置时,它会删除启动方法和“/ tasks”重定向的过滤器,但我只想删除它以进行重定向。
skip_filter :set_access_control_headers, :only => :launch
提前致谢!
更新
此方法存在于引擎中,这就是为什么我拥有与主应用程序不同的访问控制头。我不想搞乱主要的应用程序代码,因为我为每个客户创建了特定的引擎和路由。
最后的重定向转到主应用程序。
答案 0 :(得分:0)
您可以在重定向中设置参数,并在过滤器中检查参数是否存在而不是跳过
示例:redirect_to edit_multiple_items_path,:notice => '项目已更新',{:page => ##,:method => 'GET'}
答案 1 :(得分:0)
这可能是因为我过分关注这样做" Rails"方式。
我通过在重定向之前手动删除标题来解决问题,现在一切正常。
headers.delete('Access-Control-Allow-Origin')
headers.delete('Access-Control-Request-Method')
headers.delete('Access-Control-Allow-Methods')
redirect(/tasks?#{options.to_query})
感谢您的回答!