如何在action方法中重定向skip_before_filter?

时间:2014-10-20 11:52:58

标签: ruby-on-rails ruby http-headers

我有一个控制器,它有几个方法,其中一个在最后有一个重定向。

def launch
  do_something
  params[:hey] = "heyo"
  redirect_to("/tasks")
end

所有操作都有一个before_filter,用于设置一些访问控制标头。 我想要的是什么;

我希望在“启动”方法过滤之前使用此功能,但不能在其中进行重定向。 我怎样才能做到这一点?

当我在下面设置时,它会删除启动方法和“/ tasks”重定向的过滤器,但我只想删除它以进行重定向。

skip_filter :set_access_control_headers, :only => :launch

提前致谢!

更新

此方法存在于引擎中,这就是为什么我拥有与主应用程序不同的访问控制头。我不想搞乱主要的应用程序代码,因为我为每个客户创建了特定的引擎和路由。

最后的重定向转到主应用程序。

2 个答案:

答案 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})

感谢您的回答!