2012-10-10 54 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