该标题是一口。使用has_many:通过fields_for和复选框来创建关联
所以我有这样的事情:
class Company < ActiveRecord::Base
has_many :company_partner_associations
has_many :partners, through: :company_partner_associations
end
class CompanyPartnerAssociation
belongs_to :company
belongs_to :partner
end
class Partner
has_many :company_partner_associations
has_many :companies, through: :company_partner_associations
end
而且对公司的形式,我试图让所有的合作伙伴名单,并且旁边有一个复选框。如果我检查一个,它会创建关联。如果我取消选中它会破坏。
<%= f.fields_for :company_partner_associations, Partner.all do |p| %>
<%= f.check_box :partner_id %>
<% end %>
失败,因为获得通过的对象是合作伙伴,因此让undefined partner_id on Partner
我敢肯定有一个漂亮的解决方案在那里!谢谢!
是的它不是,它不会更新,它的渲染错误。 '<%= p.check_box:partner_id%>'不起作用,因为它将Partner作为对象(来自Partner.all)而不是关联。 – beamercola
我的一半解决方案是为控制器中的每个合作伙伴构建关联。但是当我确定一些正确的语法会使它发生时,看起来像一个老鼠巢窝 – beamercola
我还没有使用rails的这个特性,但是我用过的语法有些不同。我在form_for块中拥有块的字段。也许尝试一下。 – baron816