4

我想为 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

4

1 回答 1

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

如果你有一个表'weekdays',那么 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 %>
于 2011-03-07T10:02:31.580 回答