我有条件var需要转换为哈希但我总是得到一个空哈希,我不知道为什么......调试信息如下。
0> p conditions
App 3069 stdout: {"email"=>"asdf.yuan@asdf.com"}
=> {"email"=>"asdf.yuan@asdf.com"}
0> p conditions.class
App 3069 stdout: ActionController::Parameters
=> ActionController::Parameters
0> p conditions.to_h
App 3069 stdout: {}
=> {}
我试着去,,它只是表现得很受欢迎!!!真的很奇怪!!!
答案 0 :(得分:3)
没什么好奇的; p conditions.to_h
正在正确返回{}
,因为没有任何密钥被标记为允许。
请查看该方法的文档:http://api.rubyonrails.org/classes/ActionController/Parameters.html#method-i-to_h
to_h()
返回此参数的安全哈希表示,并删除所有未允许的键。
尝试按照以下方式设置密钥:
> permitted_conditions = conditions.permit(:email)
> permitted_conditions.to_h
=> {"email"=>"asdf.yuan@asdf.com"}
to_unsafe_h
有您最初寻找的行为。