0
我有問題獲得下面的代碼工作。fields_for has_many通過關係導軌3
class Page < ActiveRecord::Base
has_many :page_parts, :through => :page_parts_pages
has_many :page_parts_pages
accepts_nested_attributes_for :page_parts, :allow_destroy => true
accepts_nested_attributes_for :page_parts_pages, :allow_destroy => true
end
class PagePart < ActiveRecord::Base
has_many :page_parts_pages
has_many :pages, :through => :page_parts_pages
end
class PagePartsPage < ActiveRecord::Base
belongs_to :page
belongs_to :page_part
end
表結構: -
pages
id, title
pages_parts
id, title
page_parts_pages
id, page_id, page_part_id
查看代碼
<% page_fragment.each do |k,v| %>
<% if v.nil? or v.blank? or v.empty? %>
<% parts = f.object.page_parts.build if f.object.page_parts.blank? %>
<%= f.fields_for :page_parts, parts do |p| %>
<%= render 'page_part_form_field', :f => p %>
<% end %>
<% else %>
<% parts_page = f.object.page_parts_pages.build if f.object.page_parts_pages.blank? %>
<%= f.fields_for :page_parts_pages, parts_page do |p| %>
<%= render 'page_part_page_form_field', :f => p %>
<% end %>
<% end %>
<% end %>
其實情況是,我要顯示條件的基礎上page_parts和page_parts_pages領域。如果條件滿足,page_parts的其他顯示字段將顯示page_parts_pages的字段。
對於新動作,它的工作效果非常好,但對於編輯動作而言,它無法正確顯示。
任何幫助,高度讚賞。
在此先感謝
謝謝@salil你的時間,但使用你的解決方案提出了兩個問題: - 1)表單只發布page_parts_pages的一個實例,而它應該是兩個。 2)它引發了一個錯誤無法批量分配受保護的屬性:page_parts_page,page_part。克服這個錯誤後,應用程序提出「未知屬性page_parts_page」 – vikram
編輯我的答案。我想如果你知道fields_for是什麼,你會找到正確的方式來實現你的表單。 – Salil
我會嘗試編輯的答案。而且,如果你分享一些鏈接,我可以更好地理解這些領域,那對我來說將會非常棒 – vikram