投稿パラメーターからキーと値のペアの配列を反復処理したい:
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"c6VYssp33I075nfv1ViPty38+aZSkWM/jh6oll2pYS8=",
"permission"=>
{"employment_id"=>"7",
"organisation_level"=>"all_below",
"permissions"=>"view_permissions",
"users"=>"",
"organisation"=>"",
"functions"=>"",
"statistics"=>""},
"commit"=>"Opslaan"}
これらのパラメーターからパーミッション マップを取得し、処理を試みます。基本的に、キーが employee_id ではなく、値が present かどうかを確認したい。
params.each do |k,v|
if(!(k.eql?"employment_id") && v.present?)
p v
end
end
この for each で 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