3

我对 ruby​​/rails 比较陌生,我有以下问题:

我正在开发一个调度应用程序,并且有一个名为 Classes 的模型和另一个名为 ClassEntries 的模型。它们之间的关系是每个用户每学期可以有多个班级条目,每个班级都与一个班级有关。Classes 表中的每条记录都属于特定的大学。一个用户可以在 ClassEntries 表中有多个条目用于 1 个学期(通常为 5 个)。他们的日程表由所有具有相同学期 ID 的 ClassEntries 组成。

我不确定我是否应该有第三个模型,称为 Schedule,它将 ClassEntries 和 Classes 模型中的信息汇集到手头的用户中。我最初用 PHP 编写了这个功能,我只是使用 MySQL JOIN 来收集必要的信息。在 Rails 中,似乎应该有更好的方法来实现这一点。

在 Rails 中解决这个问题的最佳方法是什么?

非常感谢

4

1 回答 1

1

因此,您正在寻找的几乎是 Rails 中的关联。

您将拥有以下内容:

def User < ActiveRecord::Base
  has_many :course_entries
  has_many :courses, :through => :class_entries
end

def CourseEntry < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
end

def Course < ActiveRecord::Base
  has_many :course_entries
  has_many :users, :through => :class_entries
end

建立这些关联后,Rails 将允许您执行诸如 some_user.coursesor之类的操作,some_course.users并且它将通过 CourseEntry 为您进行连接。

让我知道这是否有帮助。如果您需要我更深入地了解,请告诉我。

于 2012-10-28T02:52:20.047 回答