以下系统用于管理联系人。 每个联系人都属于一个组织,每个组织都有许多位置。联系人还与父组织的一个位置相关。 组织模型看起来像这样
has_many :contacts
has_many :locations
accepts_nested_attributes_for :locations, :reject_if => lambda { |a| a["name"].blank? }
我希望它接受位置的嵌套属性,因为当用户添加组织时,他还可以动态添加位置。
联系模式如下所示
has_one :location
belongs_to :organisation
accepts_nested_attributes_for :organisation
同样的故事,当添加联系人时,我希望用户能够动态添加组织,但组织需要有一个位置,因此视图中存在第二级嵌套也可以创建位置为了组织。 它工作正常,它添加了联系人,它添加了组织和位置,它创建了位置和组织之间的关联,但发生的是我有一个字段“location_id”接触,我想在那里的id为组织动态添加的位置。有没有人知道通过模型做到这一点的干净方法,还是我必须通过控制器中的一些调整来解决它?
答案 0 :(得分:0)
如果你使用@location = @contact.build_location
,它应该创建你当前缺少的ID,即使在构建时@contact的id不存在。