如何提交多个下拉列表以及其他参数?

时间:2018-07-19 15:54:23

标签: ruby-on-rails forms drop-down-menu

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。我可以显示出勤人数,因为我更改了代码。

非常感谢您提前提供帮助。

0 个答案:

没有答案