我有一个表单来按照Ryan Bates的嵌套表单教程(#196和#197)构建几个对象。我的表格是这样的:
<%=form_for @group_poll, :remote => true do |f|%>
<%=f.fields_for :questions do |builder| %>
<%=render "group_polls/question_fields", :f => builder%>
<%end%>
<p><%= link_to_add_group_question "#{t(:addquestion)}", f, :questions%></p>
<%end%>
部分看起来像:
<div class="row-fluid">
<div class="span3"><%=f.label "#{t(:question)}:"%></div>
<div class="span3"><%=f.text_field :admin_question, :required => true%></div>
<div class="span1"><%=f.submit "#{t(:send)}", :name => "send_#{f.object.id}", :class=>"btn-white"%></div>
<div class="span1"><%=f.submit "#{t(:save)}", :name => "save_#{f.object.id}", :class=>"btn-white"%></div>
</div>
我想在访问应用程序中的页面时预加载数据库中存在的一些问题,并有机会添加新问题。在控制器操作中@group_poll.questions.build()
每次投票。生成问题字段可以正常工作,但它们是空的。我不知道如何用数据库中的数据预加载这些民意调查。我尝试传递question
对象@group_poll.questions.build(question)
,但没有成功。我遵循了这个SO问题的答案,但我迷路了。
我想做的事情可能吗?
如果您想在DB中预加载现有问题,则不应该使用build()
,因为它构建并清空对象。
如果你去掉build()
,它有效吗?
@group_poll.questions