Я хочу itterate над массивом ключа, паров значений из почтовых параметров:рубин, если оценка заявления
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"c6VYssp33I075nfv1ViPty38+aZSkWM/jh6oll2pYS8=",
"permission"=>
{"employment_id"=>"7",
"organisation_level"=>"all_below",
"permissions"=>"view_permissions",
"users"=>"",
"organisation"=>"",
"functions"=>"",
"statistics"=>""},
"commit"=>"Opslaan"}
Я беру карту разрешения из этих параметров и попытаться обработать его. В основном я хочу проверить , если ключ не занят_ид, а значение присутствует.
params.each do |k,v|
if(!(k.eql?"employment_id") && v.present?)
p v
end
end
При запуске, если заявление в этом для каждого я столкнулся с каким-то странным поведением и Интересно, если кто-то может пролить свет на эту ситуацию
я закончил с этим, если заявление, он работает и оценивает, как я ожидаю. Он печатает только значение, когда значение не ""
или nil
и ключ разве employment_id
if(!(k.eql?"employment_id") && v.present?)
p v
end
Однако следующие два, если заявления не работают, как я ожидал. Оба печатают все значения. Они оценивают до true
, хотя я думаю, что они не должны.
if(!k.eql?"employment_id" && v.present?)
p v
end
и
if !k.eql?"employment_id" && v.present?
p v
end
Похоже на свою предшествующую вещь - ознакомьтесь с http://www.techotopia.com/index.php/Ruby_Operator_Precedence – ryan