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

Ruby on rails 即使数据存在,RubyonRails会话数据也返回false,ruby-on-rails,session,Ruby On Rails,Session,我有这样一个密码 session[:my_data]=“abcd” 当我试图得到 将session.has_key?(“my_data”)放入会话,然后始终返回false。Ruby允许任何对象成为散列键。如果哈希键是一个符号,您将无法使用字符串访问它 在这种情况下,您有多种选择: 将字符串转换为符号 session.has_key?(“my_data.to_sym”) 使用Rails的和_interference _access方法允许对散列进行符号和字符串查询 s=session.with\

我有这样一个密码

session[:my_data]=“abcd”

当我试图得到


将session.has_key?(“my_data”)
放入会话,然后始终返回
false

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

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

  • 将字符串转换为符号

    session.has_key?(“my_data.to_sym”)

  • 使用Rails的和_interference _access方法允许对散列进行符号和字符串查询

    s=session.with\u冷漠\u访问
    放置s.has_key?(“我的_数据”)


会话。是否有密钥?(:my\u data)
是的,但我正在使用相同的语法获取其他数据然后:
会话[“my\u data”]=“abcd”
,保持一致我只想检查密钥是否存在当我尝试此操作时,会话[“my\u data”]的值为零。换句话说,会话的行为不像HashWithInferenceAccess(用于在控制器中存储
params
,例如,允许您获取
params[:foo]
params[“foo”]
。当你说
是,但我用相同的语法获取其他数据时,你能解释一下你在哪里以及如何这样做吗?