我有这个模型:Store
和Address
。
第二个模型Address
我将它与其他模型一起使用,并且内部有一些用于不同模型的自定义字段。
是的,就像多态但没有varchar
Class 的字段,我使用的是整数。(优化的东西)
现在在我的Store
模型上,集合中的关联是这样的:
class Store < ActiveRecord::Base
has_many :addresses, :foreign_key => "parent_id", :conditions => ['parent_kind = ?', 2]
accepts_nested_attributes_for :addresses
end
现在在我的控制器中,我这样做:
@store.addresses.build
我可以f.fields_for :addresses...
在表格内使用。
当我提交表单并将数据保存到数据库时,问题就出现了。
stores
表中的记录已保存,记录中的记录与存储的addresses
一起保存parent_id
,但parent_kind
在0
其中是 MySQL 上该属性的默认值。
我的快速修复是这样的:
@store = Store.new(params[:store])
@store.addresses[0].parent_kind = 2
if @store.save
....
但我知道必须有另一种方式。
有什么建议吗?
谢谢。