【问题标题】:Rails: Check for cookieRails:检查cookie
【发布时间】:2012-05-12 04:44:30
【问题描述】:

我真的找不到解决这个非常常见问题的确切信息。我想设置一个 cookie,如果不可能(cookie 被禁用)我想显示一个错误页面。

在我的应用程序控制器中,我设置了 cookie:

  if (cookies[:user].blank?)
    cookies[:user] = {
      :value => (0...10).map{ ('a'..'z').to_a[rand(26)] }.join,
      :expires => 6.months.from_now,
      :domain => 'localhost'          
    }           
   end 

然后在我的另一个控制器中预订控制器:

if cookies[:user].blank?
  @publish_form = false
  @no_cookies = true
end

在视图中:

   <% if @no_cookies %>
You need to enable cookies
<% end %>

现在,这真的行不通。如果启用 cookie,它将创建一个 cookie,但如果禁用 cookie,它仍会创建一个“cookie”,因此在我的预订控制器中它将有一个值,因此不会为空。如果页面被重新加载,它将创建另一个 cookie 值。似乎它只是在创建一个会话或其他东西。使用 request.cookie 也不起作用。

当用户进入页面时,我应该使用什么来创建 cookie,检查 cookie 是否存在并根据 cookie 是否存在显示不同的视图?

【问题讨论】:

标签: ruby-on-rails cookies


【解决方案1】:

我认为您必须提出第二个请求?由于无法在一个请求中知道您是否可以实际设置它们。

也许您可以使用 javascript 来尝试读取 cookie?

【讨论】:

  • 这似乎不太可能,但也许我必须通过重定向或其他方式绕过它来“伪造”新的加载页面?
  • 我最终这样做了,但感觉不是一个很好的解决方案。它虽然有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 2018-07-08
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
相关资源
最近更新 更多