在Rails上的Ruby中一次为所有用户创建出勤

伊德里斯

我必须使用以下模型:

class User < ActiveRecord::Base
  has_many  :addresses
  has_many  :enrollments
  has_many  :courses, :through => :enrollments
  has_many  :attendances
  has_many  :lessons, :through => :courses


class Enrollment < ActiveRecord::Base
  belongs_to :user
  belongs_to :course


class Course < ActiveRecord::Base
  has_many  :enrollments
  has_many  :users, :through => :enrollments
  has_many  :lessons
  has_many  :attendances, :through => :lessons

class Lesson < ActiveRecord::Base
  belongs_to :course
  has_many :attendances
  has_many :users, through: :course

class Attendance < ActiveRecord::Base
  belongs_to :user
  belongs_to :lesson

在考勤控制器中,我有:

class AttendancesController < ApplicationController
  before_filter :set_lesson
def new
    @attendance = @lesson.attendances.new
end
def create
    #@attendance = Attendance.new(attendance_params)
    @attendance = @course.attendances.new(params[:milestone])
    respond_to do |format|
      if @attendance.save
        format.html { redirect_to @attendance, notice: 'Attendance was successfully created.' }
        format.json { render :show, status: :created, location: @attendance }
      else
        format.html { render :new }
        format.json { render json: @attendance.errors, status: :unprocessable_entity }
      end
    end
end

def set_lesson
   @course = Course.find(params[:course_id]) 
   @lesson = @course.lessons.find(params[:lesson_id])
end

我的嵌套路线:

Rails.application.routes.draw do

  #resources :attendances
  resources :courses do
    resources :lessons do
      resources :attendances
    end
    resources :enrollments
    end

我要实现的目的是为注册到该会话过程中的用户创建课程的出勤率。任何建议或帮助,使之成为可能。我见过类似的问题,但它们的结构与我不同。截至目前,当我单击“新出勤”时,我仅获得一个记录创建表格,但是我希望它显示每个学生的所有学生姓名和出勤字段,因此我可以按时提交所有表格。我已经两天没有运气了,所以请帮忙。提前致谢。

create_table "attendances", force: :cascade do |t|
    t.integer  "user_id",    null: false
    t.integer  "lesson_id",  null: false
    t.string   "status",     null: false
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  add_index "attendances", ["lesson_id"], name: "index_attendances_on_lesson_id", using: :btree
  add_index "attendances", ["user_id"], name: "index_attendances_on_user_id", using: :btree

  create_table "courses", force: :cascade do |t|
    t.string   "name"
    t.string   "section"
    t.text     "description"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
    t.date     "start_date"
    t.date     "end_date"
  end

  create_table "enrollments", force: :cascade do |t|
    t.integer  "user_id"
    t.integer  "course_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  add_index "enrollments", ["course_id"], name: "index_enrollments_on_course_id", using: :btree
  add_index "enrollments", ["user_id"], name: "index_enrollments_on_user_id", using: :btree

  create_table "homes", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "lessons", force: :cascade do |t|
    t.datetime "meeting",               null: false
    t.datetime "end_time",              null: false
    t.string   "subject",    limit: 40, null: false
    t.integer  "course_id"
    t.datetime "created_at",            null: false
    t.datetime "updated_at",            null: false
  end

  add_index "lessons", ["course_id"], name: "index_lessons_on_course_id", using: :btree

  create_table "registrations", force: :cascade do |t|
    t.integer  "user_id",    null: false
    t.integer  "course_id",  null: false
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end
最大净化器

您正在布置相当复杂的关联,但是我不确定我要遵循的是您要尝试执行的确切步骤。无论如何,一旦您了解了创建关联记录的基本概念,便应该能够使其适应您的特定方案。

因此,结束您的发言:

我要实现的目的是为注册到该会话过程中的用户创建课程的出勤率。

假设您具有以下关联:

  • 课程有很多用户
  • 上课人数很多
  • 出勤有一个user_id列

并说您有一个lesson_id开始的机会。

然后,您可以编写:

lesson = Lesson.find(lesson_id)
users = lesson.users
users.each { |user| lesson.attendances.create(user: user) }

或类似的内容,以便为属于课程的每个用户创建出勤率。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

一次更改Xcode(IB +文件)中一个类的所有实例吗?

来自分类Dev

如何返回上一次提交+删除所有新创建的文件?

来自分类Dev

用户集合中所有用户的列表在第一次与Meteor js不兼容时

来自分类Dev

如何获取列表并以随机顺序打印所有内容,并在python中一次打印一次?

来自分类Dev

如何在Windows 7上为所有用户创建Java Webstart快捷方式?

来自分类Dev

为所有用户创建一个全局会话

来自分类Dev

在ruby中一次移动所有具有相同扩展名的文件

来自分类Dev

如何在Rails上的ruby中显示除当前用户和current_user的朋友以外的所有用户

来自分类Dev

在ubuntu 14.04上为所有用户全局设置ruby

来自分类Dev

在Makefile中一次运行所有目标

来自分类Dev

一次更改Xcode(IB +文件)中一个类的所有实例吗?

来自分类Dev

如何在Rails 6中一次运行所有测试,包括系统测试?

来自分类Dev

如何通过GraphQL查询一次获取所有用户?

来自分类Dev

在Heroku上的Rails中一次显示大量记录

来自分类Dev

从特定列中获取所有用户的价值,在Ruby on Rails上

来自分类Dev

在ruby中一次移动所有具有相同扩展名的文件

来自分类Dev

所有用户的Ruby on Rails Update字段

来自分类Dev

如何在Rails上的ruby中显示除当前用户和current_user的朋友以外的所有用户

来自分类Dev

面向所有用户的一次性介绍性幻灯片放映

来自分类Dev

在ubuntu 14.04上为所有用户全局设置ruby

来自分类Dev

用户创建X个月+所有用户创建Rails

来自分类Dev

在新版本的Firebase中一次创建1000个以上的用户

来自分类Dev

为所有用户创建备忘单

来自分类Dev

RecyclerView一次为所有项目创建ViewHolders

来自分类Dev

Ruby on rails:创建具有多个用户和一个所有者的组

来自分类Dev

每 x 秒模拟一次没有用户交互的点击

来自分类Dev

如何为 ASP.NET 应用程序的所有用户保存对象变量以使用一次启动

来自分类Dev

为什么 Reactjs 一次显示所有用户全名

来自分类Dev

我可以在 WebStorm / PhpStorm 中一次为所有运行 / 调试配置设置 Node 解释器吗?

Related 相关文章

  1. 1

    一次更改Xcode(IB +文件)中一个类的所有实例吗?

  2. 2

    如何返回上一次提交+删除所有新创建的文件?

  3. 3

    用户集合中所有用户的列表在第一次与Meteor js不兼容时

  4. 4

    如何获取列表并以随机顺序打印所有内容,并在python中一次打印一次?

  5. 5

    如何在Windows 7上为所有用户创建Java Webstart快捷方式?

  6. 6

    为所有用户创建一个全局会话

  7. 7

    在ruby中一次移动所有具有相同扩展名的文件

  8. 8

    如何在Rails上的ruby中显示除当前用户和current_user的朋友以外的所有用户

  9. 9

    在ubuntu 14.04上为所有用户全局设置ruby

  10. 10

    在Makefile中一次运行所有目标

  11. 11

    一次更改Xcode(IB +文件)中一个类的所有实例吗?

  12. 12

    如何在Rails 6中一次运行所有测试,包括系统测试?

  13. 13

    如何通过GraphQL查询一次获取所有用户?

  14. 14

    在Heroku上的Rails中一次显示大量记录

  15. 15

    从特定列中获取所有用户的价值,在Ruby on Rails上

  16. 16

    在ruby中一次移动所有具有相同扩展名的文件

  17. 17

    所有用户的Ruby on Rails Update字段

  18. 18

    如何在Rails上的ruby中显示除当前用户和current_user的朋友以外的所有用户

  19. 19

    面向所有用户的一次性介绍性幻灯片放映

  20. 20

    在ubuntu 14.04上为所有用户全局设置ruby

  21. 21

    用户创建X个月+所有用户创建Rails

  22. 22

    在新版本的Firebase中一次创建1000个以上的用户

  23. 23

    为所有用户创建备忘单

  24. 24

    RecyclerView一次为所有项目创建ViewHolders

  25. 25

    Ruby on rails:创建具有多个用户和一个所有者的组

  26. 26

    每 x 秒模拟一次没有用户交互的点击

  27. 27

    如何为 ASP.NET 应用程序的所有用户保存对象变量以使用一次启动

  28. 28

    为什么 Reactjs 一次显示所有用户全名

  29. 29

    我可以在 WebStorm / PhpStorm 中一次为所有运行 / 调试配置设置 Node 解释器吗?

热门标签

归档