我在哪里可以在Ruby on Rails中使用cookie

时间:2010-09-24 11:00:51

标签: ruby-on-rails cookies controller initialization

我正在使用控制器的初始化程序来设置我需要的东西。

def initialize
  super()
  a = cookies[:a] # EXCEPTION

end

但是我不能使用cookies,因为它是空的,系统还没有从标题中读取它们。

同样的问题是ASP.NET MVC,我无法在构造函数中访问cookie,但我可以在Initialize()方法中访问它们。

如何在Rails中获取cookie?

3 个答案:

答案 0 :(得分:1)

如果您想在每次请求之前设置一些内容,请使用before_filter

class MyController << ApplicationController
  before_filter :cookie_setup

  def cookie_setup
    a = cookies[:a]
    .. whatever you want to do with 'a'
  end
end

答案 1 :(得分:0)

以前我也有这个问题,这应该有效:

cookies['a'] = 'value'
a = cookies['a']

答案 2 :(得分:0)

具体来说,cookie是一个哈希,你正在做的是向哈希添加一个带有语法hash[:key] = value的键值对。所以添加一个键而不分配值会在你提出要求时给你一个零值。

irb(main):006:0> cookies = {}
=> {}
irb(main):007:0> cookies[:a] = 'value'
=> "value"
irb(main):008:0> cookies.inspect
=> "{:a=>\"value\"}"
irb(main):010:0> a= cookies[:b]
=> nil
irb(main):011:0> cookies.inspect
=> "{:a=>\"value\"}