即使数据存在,ruby on rails会话数据也会返回false

时间:2014-04-23 09:07:16

标签: ruby-on-rails session

我有一个代码,

session[:my_data] = 'abcd'

当我试图获得时,

puts session.has_key?("my_data")然后它总是返回false

1 个答案:

答案 0 :(得分:1)

Ruby允许任何对象成为哈希键。如果散列键是符号,则无法使用字符串访问它。

在这种情况下,您有多种选择:

  • 将字符串转换为符号

    session.has_key?("my_data".to_sym)

  • 使用Rails'with_indifferent_access方法允许对哈希值进行符号和字符串查询

    s = session.with_indifferent_access puts s.has_key?("my_data")