2012-10-10 52 views
1

我遇到了Safari第6个问题,它阻止了第三方iframe cookie,除非用户访问了iframe之外的域。唯一的修复似乎是这里的一个:Safari 3rd party cookie iframe trick no longer working?将查询字符串附加到所有导轨路线

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

所以我不明白的是,如果有一种方法可以将查询参数附加到所有路由而不必直接编辑每个链接?即通过添加一些东西到我的路线文件。

+0

您可以覆盖'link_to'辅助方法的参数添加到所有的URL。下面的博客帖子用一个示例来描述它:http://opensoul.org/blog/archives/2006/08/04/tip-overriding-link_to-to-accept-a-block/ –

回答

3

覆盖默认的url选项。

您可以为您的整个应用程序这样做的application_controller

def default_url_options(options = {}) 
    options.merge({ :session_id => request.session_options[:id] }) 
end