2017-04-01 49 views
0

我有以下的(簡化)類:爲什麼我simple_fields_for不迭代

class CandidateList < ActiveRecord::Base 
    has_many :candidates, inverse_of: :candidate_list, dependent: :destroy 
    ... 
end 

class Candidate < ActiveRecord::Base 
    belongs_to :candidate_list, inverse_of: :candidates 
    ... 
end 

在我的控制,我創建了一個CandidateList 10個Candidate對象和查詢數據庫驗證它們存在並被附着。

在我的形式,我有以下幾點:

<%= simple_form_for save_bingo_terms_path(candidate_list_id: @candidate_list) do |f| %> 
    ... 
    <%= @candidate_list.candidates.count %> 
    <table> 
    <%= f.simple_fields_for :candidates do |cf| %> 
    <tr> 
     <td><%= cf.input :name, label: false %></td> 
     <td><%= cf.input :definition, label: false %></td> 
    </tr> 
    <% end %> 
<% end %> 

誰能幫助我瞭解爲什麼它只能說明我在表中的一行與name輸入字段和definition即使count表格上方的輸出顯示10

在此先感謝!

回答

0

:candidates不與@candidate_list對象相關聯的,它與一個save_bingo_terms_path

變化相關的simple_form_for

<%= simple_form_for @candidate_list do |f| %> 

而且不要忘了指定...

class CandidateList < ActiveRecord::Base 
    has_many :candidates, inverse_of: :candidate_list, dependent: :destroy 
    accepts_nested_attributes_for :candidates 
    ... 
end 

或者,您可以明確指定一個each循環並引用每個候選人

<% @candidate_list.candidates each do |candidate| %> 
    <% f.simple_fields_for :candidates, candidate do |cf| %> 
    <tr> 
     <td><%= cf.input :name, label: false %></td> 
     <td><%= cf.input :definition, label: false %></td> 
    </tr> 
    <% end %> 
<% end %> 
+0

我想就是這樣。其中一天,我必須閱讀更多關於FormBuilders的信息......現在,我認爲我只是想將其作爲一種資源。 –

相關問題