具有关联模型的复选框值

时间:2013-08-07 06:40:24

标签: ruby-on-rails ruby checkbox associations

如何在Attendance表格中保存员工Attendance。 协会:

  1. 员工has_many:出勤。
  2. 出勤belongs_to:员工。
  3. 以下是代码:

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

1 个答案:

答案 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