如何在Attendance
表格中保存员工Attendance
。
协会:
以下是代码:
<%= form_for @attendance do |f| %>
<%= f.date_select :date %><br />
<button type="button" id="check_all">
EmployeeName / Attendance
</button><br />
<table>
<%#= hidden_field_tag "attendance[is_present]", '0'%>
<% Employee.all.each do |emp|%>
<tr>
<td>
<%= emp.first_name %><%= emp.last_name %></td>
<td style="padding-left:50px;">
<%#= check_box_tag 'attendance[is_present]', 1, (@data.attendance.is_present == 1 ? true : false)%>
<%= f.check_box :is_present %></td>
<td>
<%= attendance.inspect %>
<% @attendance.employee_id = emp.id %>
</td>
</tr>
<% end %>
</table>
<script type='text/javascript'>
$('#check_all').on("click", function(){ $('input[type="checkbox"]').click(); });
</script>
<%= f.submit %>
<% end %>
答案 0 :(得分:0)
如果是出勤belongs_to
员工,则出勤表将只有一个employee_id列,并且给定的出席人员只能链接到一名员工。因此,我认为您可能希望更改模型,以便在员工和出勤率之间建立has_and_belongs_to_many
关系。然后你需要一个attendances_employees
表来加入它们。
在模型之间建立连接后,请查看Handle check box forms with an `:has_many :through` Record Association。问题下的评论指向http://millarian.com/programming/ruby-on-rails/quick-tip-has_many-through-checkboxes/,其中有一个非常有用的示例。为了防止该网站消失,您希望在视图中设置以下内容:
<% Employee.all.each do |emp|%>
<tr>
<td>
<%= label_tag "employee_id_#{emp.id}", "#{emp.first_name} #{emp.last_name}" %>
</td>
<td style="padding-left:50px;">
<%= check_box_tag :employee_ids, emp.id, @attendance.employees.include?(emp), name: "attendance[employee_ids][]", id: "employee_id_#{emp.id}" %>
</td>
</tr>
<% end %>
您还需要在出勤模式中使用attr_accessible :employee_ids
。