我想为fields_for使用额外的集合。这个集合应该包含在fields_for中使用的所有可能性。
假设我有一个人在同一天每周定期发生任务。在个人表格中,我应该每天都有一个条目,即使还没有任何已保存的任务。我试过了:
<% form_for(@person) do |f| %>
...
<% f.fields_for :tasks, @weekdays do |task_fields| %>
<%= weekday.name %>:
<%= project_fields.text_field :name %>
<% end %>
<% end %>
现在每个工作日应该有一个文本字段来输入当天任务的名称。例如weekday.name =“monday”和task.name =“喝咖啡”,task.weekday_id = 1
答案 0 :(得分:0)
您没有遍历week_days。你应该这样做:
<% @weekdays.each_with_index do |weekday, i| %>
<% f.fields_for :tasks do |task_fields| %>
<%= weekday.name %>:
<%= task_fields.text_field :name %>
<%= task_fields.hidden_field :weekday_id, :value => (i + 1) %>
<% end %>
<% end %>
如果你有一个'工作日'表,那么hidden_field值应为weekday.id
编辑:7月30日
我想我完全搞砸了这个答案。让我试着改进它。
<% f.fields_for :tasks, @weekdays do |task_fields| %>
<%= weekday = task_fields.object %>
<%= weekday.name %>:
<%= task_fields.text_field :name %>
<%= task_fields.hidden_field :weekday_id, :value => weekday.id %>
<% end %>