【问题标题】:Looking for a way to track history in rails database寻找一种在 Rails 数据库中跟踪历史记录的方法
【发布时间】:2017-07-30 00:58:13
【问题描述】:

我正在考虑将其作为以下主题的附加问题: Using join tables in ruby on rails

所以我们有“学生”和“课程”脚手架,通过多对多关联加入,但此外还有一个“学期”脚手架,我希望为每个学生添加到一门课程,让应用程序在过去的学期中搜索同一课程的先前迭代,以便知道学生之前上过该课程的次数。目前我对如何实现这一点有点困惑,所以我希望有人可以帮助我确定我应该操作的逻辑和代码。

到目前为止我的一些基本假设:

  • 'Course' 和 'Semester' 应该像 'Student' 和 'Course' 一样加入 通过多对多关联(每学期教授许多课程, 并且一门课程的授课时间超过一个学期)。
  • 课程中应该有一个动作(比如get_student) 控制器通过 student_id 定位学生。 这将是我想知道该怎么做的主要领域。这个方法在代码中会是什么样子?
  • 在学生课程连接表中我应该有一个属性 'attempts' 每次 get_student 找到它时都会增加 student_id 与调用方法的 course_id 相结合。这个 将是实际告诉课程多少次的机制 学生曾尝试过。
  • 我最初想知道是否应该有一个“学期”控制器 在所有学期中激活 get_student 的行动,但现在我 认为没有它 get_student 应该可以正常工作。

感谢我能得到的任何帮助。谢谢。

【问题讨论】:

  • 你有更新吗?

标签: ruby-on-rails ruby-on-rails-3 join model-view-controller jointable


【解决方案1】:

这不是一个好的答案,只是一个评论。 我会发表评论,但听到会更清楚。我会更新其他点。这只是一个持续的反馈/讨论,而不是答案。

class Semester < ApplicationRecord
 has_many :courses
end

class Course < ApplicationRecord
 has_many :students
end

并且 term.courses[0].students => 输出学生数组

这可能是计算参加该课程的学生人数的方法:

def studentForCourse

 #input_params.course_id => course id you are selecting

 semester = Semester.find(input_params)

 semester.courses.each do |course|
   if  course.id = input_params.course_id
     nstudents = course.students.size
   end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2020-12-22
    • 2020-11-07
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多