0
코드가 작동하지 않는 데 문제가 있습니다.fields_for for has_many for relationship rails 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에 대한 필드를 표시합니다.
새로운 작업에는 문제가 없지만 편집 작업에는 올바르게 표시되지 않습니다.
도움이 매우 감사합니다. 당신은이 양식의 새로운 page_parts를 작성하는 사전
시간 내 주셔서 감사합니다 @salil,하지만 솔루션을 사용하여 두 가지 문제가 발생했습니다 : - 1) 양식은 page_parts_pages의 단 하나의 인스턴스를 게시했지만 두 개가 있어야합니다. 2) 오류가 발생했습니다. 보호 된 속성을 대량 할당 할 수 없습니다 : page_parts_page, page_part. 이 오류를 극복 한 후 응용 프로그램에서 "unknown attribute page_parts_page"를 발생했습니다. – vikram
내 대답을 편집했습니다. fields_for이 무엇인지 알면 양식을 구현하는 올바른 방법을 찾을 수있을 것으로 생각합니다. – Salil
나는 편집 된 답을 시도 할 것이다. 그리고 내가 필드를 잘 이해할 수있는 링크를 공유한다면 나에게도 좋을 것이다. – vikram