将查询字符串附加到所有rails路由

时间:2012-10-10 10:49:25

标签: ruby-on-rails ruby-on-rails-3 routing

我遇到了一个safari 6问题,它会阻止第三方iframe cookie,除非用户访问过iframe之外的域。唯一的解决方法似乎是这里的一个:Safari 3rd party cookie iframe trick no longer working?

但这涉及一些丑陋的解决方法(弹出一个新的浏览器窗口并再次关闭)。我想采取的首选解决方案是加密会话ID,并将其作为查询参数附加到所有路由。 然后,我可以使用before过滤器通过解密id并从会话存储中加载它来检索会话。

所以我无法弄清楚是否有一种方法可以将查询参数附加到所有路由而无需直接编辑每个链接?即通过在我的路线文件中添加内容。

1 个答案:

答案 0 :(得分:3)

覆盖默认网址选项。

您可以在application_controller

中为整个应用程序执行此操作
def default_url_options(options = {})
  options.merge({ :session_id => request.session_options[:id] })
end