【问题标题】:Preload fields_form fields with data from database使用数据库中的数据预加载 fields_form 字段
【发布时间】:2014-04-24 12:28:54
【问题描述】:

我有一个表单来按照 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,但我迷路了。

我想做什么可以吗?

【问题讨论】:

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


    【解决方案1】:

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

    如果你把build()拿出来,它会起作用吗?

    @group_poll.questions
    

    【讨论】:

    • 我没能像你说的那样让它工作,但你的回答让我眼前一亮,我找到了解决方案:)
    猜你喜欢
    • 2012-07-14
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2018-08-12
    • 2021-06-25
    • 2020-01-01
    • 2012-01-30
    相关资源
    最近更新 更多