0

我不知道該如何去問這個問題。我如何以嵌套的形式做到這一點。當我點擊新的。我想從customer_template_detail中填充customer_answer_detail的某個字段。我有for循環裏面嵌套窗體,但@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 %> 

你有知道如何做到這一點?

+0

這是不是很清楚你想要完成什麼。您能否從業務需求的角度描述您的問題,而不是顯示此代碼......因爲您展示的代碼看起來很不尋常(禮貌地說) – Nathan

回答

1

你走在正確的軌道上,只是做錯了順序。

現在,您正在構建任何@customer_answer.customer_answer_details之前渲染窗體。

卻將@customer_answer.customer_answer_details.build到您的new控制器動作(和create如果存在的create失敗和渲染new機會)。

+0

我正在考慮在控制器中執行此操作。例如在新的。我將只添加'@ customer_answer.customer_answer_details.build',但在此之後,我可以在'build''@customer_answer.customer_answer_details.name =「sample text」'之後填入詳細信息的下一步是什麼? –

+0

我明白了。謝謝。我所做的就是將'for循環'放在循環中,並將'@ customer_answer.customer_answer_details.build(:name =>「test」)'放在循環中。 –

+0

@do_Ob:你需要'for'循環來做什麼? – fylooi