def index
@hash ||= Hash.new
puts @hash #the result is {} every time I reload the action
@hash['key'] = value
end
我认为通过这样做,变量@hash 将只被签名一次。
但事实证明,如果我是对的,每次重新加载索引操作时,@hash 都会是一个新的空哈希。
我是对的还是有其他原因导致这种奇怪的现象?
最佳答案
Controller 实例不会为不同的请求共享(那将是一团糟!),每个请求都会创建一个新实例。
只需使用类似散列的对象session
,这是进行有状态请求的正确方法(数据通常 - 但不总是,还有其他方式 - 存储在 cookie 中)
session[:my_key] = my_value
关于ruby - Rails Controller 中的运算符 (||=) 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7190934/