使用数据库中的数据预加载fields_form字段

时间:2014-04-24 12:28:54

标签: ruby-on-rails forms fields-for

我有一个表单可以根据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() 每次投票。它可以用于生成问题的字段,但它们是空的。我不知道如何使用DB中的数据预加载那些民意调查。我尝试传递question对象@group_poll.questions.build(question),但我没有运气。我跟着这个SO question’s answer,但我迷路了。

我想要做什么?

1 个答案:

答案 0 :(得分:0)

如果要在数据库中预加载现有问题,则不应使用build(),因为它会构建并清空对象。

如果你取出build(),它有用吗?

@group_poll.questions