2010-04-13 50 views
0

我不知道我在想什么。我有和顺序嵌套的项目,这些项目每个都有一种。我想操纵从每个项目,但该kind_id参数“F [:kind_id]”总是返回0。我想在保存模型之前操作嵌套参数,但我错过了一些东西

@order.items.each do |f| 
    f[:kind_id] = Kind.find_by_name(f[:kind_id]).id 
end 

的PARAMS我得到的是

{"authenticity_token"=>"7wz7ARjwcVvCR/bpp/T04JQIQwHsMKDflF1eMCL8PTU=", 
"order"=>{"items_attributes"=>{"1271160144889"=>{"price"=>"2", 
"amount"=>"2", 
"text"=>"2", 
"kind_id"=>"fds", 
"_destroy"=>""}}, 
"total_price"=>"4"}} 

以上params为当然的测试数据:)

回答

1

因为:kind_id是一个整数列,ActiveRecord会自动将其解释为您的整数("fds".to_i #=> 0)。您应该将attr_accessor :kind_name添加到项目模型并将表格字段切换到kind_name。那么你可以做

@order.items.each do |f| 
    f.kind = Kind.find_by_name(f.kind_name) 
end 
+0

它很好用。谢谢 – Flexo 2010-04-13 17:02:02

相关问题