Vous ne savez pas si cela ne fonctionne pas.Comment appelez-vous un index dans .each_with_index
>> params[:payments]
{"0"=>{":amount_paid"=>"80.00", ":date_paid"=>"2/27/2008"}, "1"=>{":amount_paid"=>"100.00", ":date_paid"=>"5/8/2008"}}
Je peux appeler un objet spécifique avec ceci:
>> params[:payments][:"1"]
{":amount_paid"=>"100.00", ":date_paid"=>"5/8/2008"}
Mais si j'écris ceci ..
>> params[:payments].each_with_index{|item, idx| item[:"#{idx}"]}
TypeError Exception: Symbol as array index
Idéaliste, je veux y arriver:
params[:payments].each_with_index do |item, idx|
@calc.payments[idx][:date_paid] = item[:"#{idx}"][":amount_paid"]
@calc.payments[idx][:amount_paid] = (item[:"#{idx}"][":amount_paid"]).to_f
end
Mise à jour:
Sur la base des réponses, I'ved essayé ceci:
params[:payments].each{|k,v| @calc.payments[k.to_i] = v[":amounts_paid"]}
Cela transforme @calc.payments
en:
nil
nil
Sauvegarde cependant, les autres semblent fonctionner ..
>> params[:payments].each{|k,v| p v[":amount_paid"]}
"80.00"
"100.00"
Et celui-ci ..
>> params[:payments].each{|k,v| p @calc.payments[k.to_i]}
{:date_awarded=>"1/2/2008", :judgement_balance=>1955.96}
nil
Comment puis-je accéder à item[idx]
dans une boucle?
Je me demande s'il est possible d'utiliser cette variable d'injection que vous avez utilisée pour écrire les paramètres sur lesquels je travaille dessus. Est-ce que c'est SQL? Je n'ai jamais vu ça avant. – Trip
Wow merci beaucoup DigitalRoss! – Trip