我在创建具有同一模型的多个实例的表单时遇到问题。我的表格用于时间表申请。下面是我想要创建的屏幕截图。 http://imageshack.us/f/541/5w3o.png/
将存储数据的表称为 project_activity 并包含以下列名称:activity_id PK、project_id、task_id、party_id、activity_hours。
下面是我的代码。我提供的屏幕截图是我的代码的输出,但是它无法在后端保存任何记录。
我的意图是有 3 个下拉菜单(派对、项目和任务),当用户选择它们时,它们将存储在局部变量中。然后,该变量将在显示的每个 activity_hour 字段的隐藏字段标记中捕获,以便在保存表单时,将创建 7 个 project_activity 记录,其中包含相同的参与方、项目和任务。
我没有在提供的代码中尝试过这个,因为我不知道怎么做。可能吗?
<h1>Timesheet</h1>
<%= form_for(@project_activity) do |f| %>
<%= f.collection_select(:party_id, Party.all, :id, :party_name, {:prompt => params[current_party]}, {class: "span2"}) %></br>
<table class="table">
<tr>
<td><%= select_tag "project_activity[project_id]",
grouped_options_for_select(Project.for_select(@date.strftime("%Y%m%d"))),
{include_blank: true, class: "span2"} %></td>
<td><%= select_tag "project_activity[task_id]",
grouped_options_for_select(ProjectTask.for_select(@date.strftime("%Y%m%d"))),
{include_blank: true, class: "span2"} %></td>
<% form_date = @date.beginning_of_week %>
<%= (@date.beginning_of_week..@date.end_of_week).each do %>
<%= f.fields_for(@project_activity) do |builder| %>
<td>
<%= builder.number_field :activity_hours, :class => 'input-mini' %>
<%= hidden_field_tag "project_activity[activity_date]", form_date %>
<% form_date+=1 %>
</td>
<% end %>
<% end %>
<tr>
<td><%= f.submit "Save", :class => 'btn btn-primary' %></td>
</tr>
</table>
<% end %>