我是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
由于
答案 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名学生创造出席率。