我有一个名称和值如下的参数列表:
date_2009-09-16 => ["50.00"]
date_2009-09-17 => ["60.00"]
date_2009-09-18 => ["90.00"]
我想在我的数据库中为每个日期保存一条记录,如下所示:
|id | date | price|
|1 | 2009-09-16 | 50.00|
|2 | 2009-09-17 | 60.00|
|3 | 2009-09-18 | 90.00|
如何从参数名称中提取日期(这可能吗?!)?
更新
虽然我仍然不确定如何做Eimantas的答案,但我能否澄清我的表格发送的参数:
Parameters: {
"commit"=>"Save",
"method"=>"put",
"controller"=>"rates",
"action"=>"create",
"authenticity_token"=>"A0wP8Dq7cVOM+bLIcdPENzRhg6T1Mwhjqob1UYTk1Jk=",
"date_2009-09-16"=>"50.00",
"date_2009-09-17"=>"60.00",
"date_2009-09-18"=>"90.00",
"rate"=>{"year"=>"2009", "product_type_id"=>"2"}
}
我认为日期应该属于params散列的速率部分,但是Rails不会将它们放在那里。
更新2:
我想知道你是否可以看到我的费率表,那么它可能有助于我(并防止你的挫折!)。我试图允许客户在我的视图中将30个值放入30个框中(在本例中为9月的每一天),并且在我的控制器中,在他们点击“保存”后,将其保存为30个记录。 / p>
id | date | price | product_type_id |
.. | .. | .. | .. |
16 | 2009-09-16 | 50.00 | 1 |
17 | 2009-09-17 | 60.00 | 1 |
18 | 2009-09-18 | 90.00 | 1 |
.. | .. | .. | .. |
我考虑使用一个隐藏字段来保存日期,并考虑使用一个可见字段来保存价格,但是Rails将如何知道哪个日期与创建操作中的哪个价格相关?对不起,如果这太令人困惑了。
提前致谢!
GAV株系
答案 0 :(得分:6)
hash.each do |k,v|
date = k.split('_')[1]
Entry.create(:date => date, :price => v)
end