为什么我的 simple_fields_for 没有迭代
Why is my simple_fields_for not iterating
我有以下(简体)类:
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
在我的控制器中,我创建了一个包含 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 %>
任何人都可以帮助我理解为什么它只显示 table 中的一行,其中包含 name
和 definition
的输入字段,即使 count
输出table 上方显示 10
?
提前致谢!
: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 %>
我有以下(简体)类:
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
在我的控制器中,我创建了一个包含 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 %>
任何人都可以帮助我理解为什么它只显示 table 中的一行,其中包含 name
和 definition
的输入字段,即使 count
输出table 上方显示 10
?
提前致谢!
: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 %>