将关联数据从数据库加载到edit.html.erb
问题描述:
我有以下一对多关联。文档有很多部分,部分有很多项目。将关联数据从数据库加载到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}
in为了显示项目评论当我点击'编辑'链接修改项目评论。不应该默认加载它们,这似乎是标题注释的情况。
感谢您的回复。是的,我想使用数据库中的item.comments值来呈现文本区域。下面的代码我没有加载评论。
<% s.fields_for :item, :index => item.id do |i| %>
<p>
<%= i.text_area :comments %>
</p>
<% end %>
你能解释一下我为什么
<%= text_area(:item, :comments) %>
的作品,但
<%= i.text_area :comments %>
没有。非常感谢。
答
看来你对options
的理解是不正确的。 Here is它是什么:
输入标签的其他选项可以与选项
哈希这意味着options
集的HTML标记属性进行传递。
你没有具体说明你想要在问题中做什么,但我假设你想用item.comments作为值来呈现textarea标签。如果是这样,那么你可以使用第二个参数method
(见docs)并试试这个:
text_area(:item, :comments, :size => "20x30")
# => <textarea cols="20" rows="30" id="item_comments" name="item[comments]">
# #{@item.comments}
# </textarea>