在我的Ruby on Rails应用程序我有以下参数:
{"0"=>{"from_days"=>"1", "to_days"=>"2", "netto_price"=>"1.0", "_destroy"=>"false", "id"=>"57"}, "1"=>{"from_days"=>"3", "to_days"=>"7", "netto_price"=>"23", "_destroy"=>"false"}, "2"=>{"from_days"=>"9", "to_days"=>"10", "netto_price"=>"123", "_destroy"=>"false"}}
现在我想检查一下:
- 1[:from_days]> 0[:to_days]
- 2[:from_days]> 1[:to_days]
- 等。
问题是我想动态地做,因为将来这个参数会变大。有人知道如何解决这个问题吗?
你可以试试:
params = {"0"=>{"from_days"=>"1", "to_days"=>"2", "netto_price"=>"1.0", "_destroy"=>"false", "id"=>"57"}, "1"=>{"from_days"=>"3", "to_days"=>"7", "netto_price"=>"23", "_destroy"=>"false"}, "2"=>{"from_days"=>"9", "to_days"=>"10", "netto_price"=>"123", "_destroy"=>"false"}}
(params.keys.min..params.keys.max).each do |index|
if params[(index+1).to_s][:from_days].to_i > params[index.to_s][:to_days].to_i
# your logic when 1[:from_days] > 0[:to_days] is true
else
end
end
这段代码意味着您的params
哈希值:
- 必须包含连续的键(每个键之间没有间隙)
- 必须包含一个包含
[:from_days]
和[:to_days]
键的散列