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="drinkingcoffee"、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 %>

テーブル「平日」がある場合、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 に答える