該標題是一口。使用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