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