我想从 post 参数中迭代一个键值对数组:
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"c6VYssp33I075nfv1ViPty38+aZSkWM/jh6oll2pYS8=",
"permission"=>
{"employment_id"=>"7",
"organisation_level"=>"all_below",
"permissions"=>"view_permissions",
"users"=>"",
"organisation"=>"",
"functions"=>"",
"statistics"=>""},
"commit"=>"Opslaan"}
我从这些参数中取出权限映射并尝试处理它。基本上我想检查键是否不是employment_id 并且值是否存在。
params.each do |k,v|
if(!(k.eql?"employment_id") && v.present?)
p v
end
end
在为每个运行 if 语句时,我遇到了一些奇怪的行为,我想知道是否有人可以对这种情况有所了解
我最终得到了这个 if 语句,它像我期望的那样工作和评估。它仅在值不是""
或nil
并且键不是时打印值employment_id
if(!(k.eql?"employment_id") && v.present?)
p v
end
但是,以下 2 个 if 语句无法按我的预期工作。两者都打印所有值。他们评估,true
而我认为他们不应该。
if(!k.eql?"employment_id" && v.present?)
p v
end
和
if !k.eql?"employment_id" && v.present?
p v
end