我如何能实现on Rails的cookie的提示信息?(How can I implement co

2019-09-19 09:47发布

我正在开发一个Facebook应用程序,所以我不能靠饼干由于P3P(隐私首选项项目)和是的,这是一个该死的疼痛(见幻灯片18日和19日这SlideShare上关于Rails和Facebook应用程序为它的照片) ...

在Facebook的应用程序每一个cookie的,从浏览器的角度来看,是一个第三方的Cookie。 和许多浏览器在默认情况下阻止他们。

所以我的问题是: 我如何能实现闪消息,而无需依靠饼干?

更新:

我修改session_store.rb和DB相应。 现在,会话存储在数据库,但闪光灯消息仍然依靠饼干...任何想法吗?

更新#2:

我终于找到了一个解决方法,请参阅我的回答如下。 做最好的办法是阿贾克斯的一切 (根据上述联SlideShare上),但作为一个快速解决我的解决办法应该工作。

Answer 1:

我终于找到了解决办法实现我自己的(简单)的提示信息并使它们通过该PARAMS从一个请求到另一个。

首先,我重写default_url_optionsapplication_controller.rb追加到每一个请求:my_flash PARAM:

def default_url_options 
  { :my_flash => @my_flash }
end    

然后,总是在application_controller.rb ,我写了一个my_flash_from_params的before_filter设置@my_flash变量:

def my_flash_from_params
  @my_flash = params[:fb_flash]
end 

最后,我作出了下列_my_flash.html.erb在部分application.html.erb

<div class="my_flash">
  <%= my_flash %>
</div>  

呼叫:

 <%= render :partial => "layouts/my_flash", :locals => {:my_flash => @my_flash} if @my_flash %>

如果你想尝试这种解决方案也看到这个答案约default_url_options改写 。



Answer 2:

闪存的消息都建在会议上。 所以,你仍然可以依靠闪光灯,如果你改变会话存储使用的数据库。 这可以通过编辑可以轻松完成config/initializers/session_store.rb并按照对文件中的指令。

下面是关于该主题的更多信息: 动作控制器概述- >会议



文章来源: How can I implement cookieless flash messages on Rails?