2017-04-01 4 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 

を、Iは10個のCandidateオブジェクトとCandidateListを作成し、データベースの検証を照会それらが存在し、添付されていること。私のフォームで

は、私は次のことを持っている:

<%= 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 %> 

誰もが、それは私だけの単一の行を示し、なぜ私にもcountかかわらnamedefinitionのための入力フィールドとテーブルに理解するのに役立ちます表の上の出力は10

ありがとうございます!

答えて

0

:candidatesが@candidate_listオブジェクトに関連付けられていない、それがsave_bingo_terms_path

変更simple_form_for

class CandidateList < ActiveRecord::Base 
    has_many :candidates, inverse_of: :candidate_list, dependent: :destroy 
    accepts_nested_attributes_for :candidates 
    ... 
end 
...
<%= simple_form_for @candidate_list do |f| %> 

と指定することを忘れないでください

に関連付けられています

また、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についてもっと読む必要があります...今のところ、私はこれをリソースにするつもりだと思います。 –

関連する問題