This is how it looks like now <-每条颜色线表示,每条变化都会影响带下划线的同色学生的一周。
我有两个学生,我正试图为此创建一个考勤表。每个学生都可以参加为期1周,10周或14周的课程。此外,每个学生的每个下拉菜单都有一个“当前”,“缺席”或“外出”选项-假定每个学生都在场。
当我尝试将此信息保存到数据库时出现问题。我有一个出勤表,其中的“ enrollment_id”行<-代表每位参加课程的学生,“每周”和“状态”。此外,我能够检索以下数组中的20个下拉框的值:“'Present','Present','Absent','Out'等...
我能够检索班级的ID,因为这是首先弹出的窗口,您可以借此了解哪些学生正在注册。我无法获取更改的出勤时间和学生的注册ID的星期。我正在运行(1..x)循环,以便显示每周标题和每周下拉框。
这是我的出勤show.html.erb:
<div style="display: inline-block; border: solid pink 3px;">
<%= form_for @attendance do |a| %>
<table>
<tr>
<th> Students </th>
<% Enrollment.where(klass_id: @klass.id).count('id') do |x| %>
<% (1..x.klass.duration_weeks).each do |y| %>
<th> <%= "Week " %><%= y %> </th>
<% end %>
</tr>
<% @enrollment.each do |e| %>
<tr>
<td> <%= e.student.first_name + " " + e.student.last_name %> </td>
<%(1..x.klass.duration_weeks).each do |f| %>
<td> <%= select_tag 'status[]', options_for_select(@status) %> </td>
<%= hidden_field_tag 'current_klass', @klass.model %>
<%= hidden_field_tag 'week', f %>
<%= hidden_field_tag 'student', e.id %>
<% end %>
<% end %>
</tr>
<% end %>
</table>
<%= a.submit "Turn list in"%>
<% end %>
这是我的Attenances_controller.erb:
class AttendancesController < ApplicationController
#respond_to :html, :js
require 'pry'
def index
@klass = Klass.all
end
def new
end
def show
@enrollment = Enrollment.all
@student = Student.all
@klass = Klass.find(params[:id])
@attendance = Attendance.new
@status = {'Present' => 'Present', 'Out' => 'Out', 'Absent' => 'Absent'}
#binding.pry
end
def update
end
def edit
end
def destroy
end
def create
binding.pry
puts params[:current_klass]
puts params[:status]
#@att = Attendance.new
#@att.enrollment_id = e.id
#@att.week = f
#@att.status = "Absent"
#@att.save
end
end
在2018-07-19 11:22:18 -0400开始对:: 1进行POST“ /出勤” 由AttendancesController#create作为HTML参数进行处理: {“ utf8” =>“✓”,
“ authenticity_token” =>“ NEwNcWmS9axhLhlTJt / 9W04 + V3mCJREqaQqXti7f07RppbYqz8 / 6nE2O 0EYcesyBQ1 / L97uJne / hvdyADjdBJg ==“, “ attendance” => {“ status” =>“ Present”},“ current_klass” =>“ I_K101”, “ week” =>“ 10”,“学生” =>“ 2”,“ commit” =>“打开清单”}
这是我单击提交按钮后从控制台获得的信息。请注意,它仅显示最后一周,并显示最后一个学生的ID。我可以显示出勤人数,因为我更改了代码。
非常感谢您提前提供帮助。