如何在嵌套表单中添加构建

时间:2015-09-02 08:02:59

标签: ruby-on-rails simple-form nested-forms nested-attributes simple-form-for

我不知道怎么问这个。我如何以嵌套的形式执行此操作。当我点击新的。我想从customer_template_detail填充customer_answer_detail的一些字段。我有嵌套形式的循环,但@customer_answer.customer_answer_details.build不在里面工作。

<%= simple_form_for @customer_answer do |f| %>
    <%= f.simple_fields_for :customer_answer_details, :wrapper => false do |p| %>
        <% @customer_template.customer_template_details.each do |ctd| %>

            <div class="form-group">
                <%= p.input :name, :as => :hidden, :input_html => { :value => ctd.name } %>
                <%= p.input :customer_template_detail_id, :as => :hidden, :input_html => { :value => ctd.id } %>
                <label class="col-sm-2 col-sm-2 control-label"><%= ctd.name %></label>
                <div class="col-sm-10">
                    <%= p.input :answer,
                        :label => false,
                        :input_html => {:class => "form-control"} %>
                </div><!-- /form col-sm-10-->  
            </div><!-- /form group-->

            <% @customer_answer.customer_answer_details.build %>

        <% end %>  
    <% end %>
<% end %>

你知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上,只是按照错误的顺序进行。

现在,您在构建任何@customer_answer.customer_answer_details之前渲染表单。

@customer_answer.customer_answer_details.build转换为new控制器操作(如果create失败并呈现create,则new