为所有学生生成轨道中的考勤视图/表格

时间:2016-11-08 10:52:19

标签: ruby-on-rails ruby activeadmin

我是Rails的新手,我正在努力寻找一些听起来容易但却无法运行的东西。我有两个模特学生和出勤。

学生模特:

name lastname classroom_id

出勤模式:

present:boolean absent:boolean halfday:boolean attnd_date:date student_id

学生has_many :attendances和出勤belongs_to :student

我可以为个别学生录取并参加他们的出席但是我想生成一个视图,我向所有学生展示(或向所有学生展示给定的教室),并且在每个学生姓名旁边,我想展示三个复选框,以便我可以一次性标记谁在场和不在场,而不是一个一个地提交表格。

非常感谢任何帮助。使用Rails 4和ruby 2.2.0

由于

2 个答案:

答案 0 :(得分:0)

您可以进行edit操作,在那里您可以找到要标记出勤率的教室。

class AttendancesController < ApplicationController
  def edit
    @classroom = Classroom.find(<classroom-id>)
  end

  def update
  end
end

在您的观看中edit.html.erb

<%= form_for(@classroom, url: '/attendances/:id', method: :put) do |f| %>
  <table>
    <%- @classroom.students.each do |student| %>
      <tr>
        <td><%= student.name %></td>
        <td><%= checkbox_tag "attendances[#{student.id}][present]" %></td>
        <td><%= checkbox_tag "attendances[#{student.id}][absent]" %></td>
        <td><%= checkbox_tag "attendances[#{student.id}][halfday]" %></td>
      </tr>
    <% end %>
  </table>

  <%= f.submit %>
<% end %>

这样,当您提交表单时,您将在update操作中收到这些参数:

`{ attendances: { '1' => { present: false, absent: true, halfday: false }, '2' => { present: true, absent: false, halfday: false }, ... } }`.

然后,您可以在操作中编写逻辑,将这些详细信息保存到数据库中。

注意:这是一种伪代码。请检查不同html标记的语法和选项。

答案 1 :(得分:0)

感谢@Jagdeep Singh让我开始运作。我现在已经让这个过程更加简单,所以我可以解决这个问题。我只想获得所有学生的名单并创建他们的出勤率。

我的观点:

<% @students = Student.all %>

<%= form_for(:attendances, url: '/admin/attendances/') do |f| %>
  <table>
  <%= @today %>
  <th>Name</th><th>Present</th><th>Absent</th><th>halfday</th>
    <%- @students.each do |student| %>
      <tr>
        <td><%= student.first_name %></td>
        <td><%= check_box_tag "attendances[#{student.id}][present]" %></td>
        <td><%= check_box_tag "attendances[#{student.id}][absent]" %></td>
        <td><%= check_box_tag "attendances[#{student.id}][halfday]" %></td>
      </tr>
    <% end %>
  </table>

  <%= f.submit %>
<% end %> 

当我点击创建考勤按钮时,它只创建一个带有所有默认参数和记录的记录。

对不起,我还在学习,但是一旦我开始了解如何为我一次性完成的所有10名学生创造出席率。