如何将fields_for cousin对象放在rails

时间:2015-11-21 01:48:40

标签: ruby-on-rails ajax activerecord

我不确定堂兄对象是一个实际的术语,但是与通常的父/子关系一致,这是我能想到的最好的描述。

在我的应用中,我有:

class KeyContact < ActiveRecord::Base
 has_many :phone_numbers, dependent: :destroy
 has_many :email_addresses, dependent: :destroy
 has_many :sale_contacts, dependent: :destroy
 has_many :sales_opportunities, :through => :sale_contacts
end

从Key_Contact我也建立了SaleContacts(所以同一个联系人可以参与多个销售机会):

class SaleContact < ActiveRecord::Base
 belongs_to :key_contact
 belongs_to :sales_opportunity
end

*编辑:Phone_Number模型为清晰起见:

class PhoneNumber < ActiveRecord::Base
 validates :number, :key_contact_id, presence: true
 belongs_to :key_contact
end

在应用程序中,我使用Bootstrap 3 Modals来托管form_for sale_contact,通过AJAX将其加载到页面中并刷新一些部分内容。所有这些都很有效,并且在新呈现的表格中有一个链接可以将phone_numbersemail_addresses添加到SaleContact(显然它实际上将这些对象添加到KeyContact)。

我想要做的是将fields_for :phone_numbers:email_addresses添加到SaleContact表单。我已尝试声明关系(即SaleContact has_many :phone_numbers, :through => :key_contacts),但由于在模式提交之前尚未为sale_contact设置key_contact(key_contact已存在,但sale_contact),因此无法正常工作尚未保存关系与特定key_contact的关系。

在rails中有一种简单的方法吗?还是我大肆过分复杂化?

0 个答案:

没有答案