다음과 같은 일대 다 연관이 있습니다. 문서에는 많은 섹션이 있고 섹션에는 많은 항목이 있습니다.데이터베이스에서 연관 데이터를 edit.html.erb로로드하십시오.
class Document < ActiveRecord::Base
has_many :document_sections, :dependent => :destroy, :autosave => true
has_many :document_items, :through => :document_sections
end
class DocumentSection < ActiveRecord::Base
belongs_to :document
has_many :document_items, :dependent => :destroy, :autosave => true
end
class DocumentItem < ActiveRecord::Base
belongs_to :document_section
end
하고 '수정'작업은 다음과 같습니다 : -
여기def edit
@document = Document.find(params[:id])
end
내가 옵션을 지정해야하는 edit.html.erb
<h1>Edit!</h1>
<% form_for(@document) do |f| %>
<%= f.error_messages %>
<p>
<p> Header Comment <p/><br />
<%= f.text_field :comment %>
<%= f.hidden_field :uid %>
</p>
<% @document.document_sections.each do |section| %>
<% f.fields_for :section, :index => section.id do |s| %>
<p>
<%= s.hidden_field :seqnum, options = {:value => section.seqnum} %>
</p>
<% section.document_items.each do |item| %>
<% s.fields_for :item, :index => item.id do |i| %>
<p>
<%= i.text_area :comments, options = {:value => item.comments} %>
</p>
<% end %>
<% end %>
<% end %>
<% end %>
<p>
<%= f.submit "Submit Comments" %>
</p>
<% end %>
이다는 값 속성으로 해시 설정 : 예 :
options = {:value => item.comments}
항목 수정을 위해 '편집'링크를 클릭하면 항목 댓글을 표시 할 수 있습니다. 기본적으로로드되지 않아야하며 이는 헤더 주석의 경우 인 것 같습니다.
답장을 보내 주셔서 감사합니다. 예, 데이터베이스의 item.comments 값을 사용하여 텍스트 영역을 렌더링하려고합니다. 아래 코드는 주석을로드하지 않습니다.
<%= text_area(:item, :comments) %>
작동하지만
<%= i.text_area :comments %>
하지 않는 이유
<% s.fields_for :item, :index => item.id do |i| %>
<p>
<%= i.text_area :comments %>
</p>
<% end %>
당신은 나를 설명 할 수있다. 감사합니다.