我对 ruby/rails 比较陌生,我有以下问题:
我正在开发一个日程安排应用程序,有一个名为 Classes 的模型和另一个名为 ClassEntries 的模型。它们之间的关系是每个用户每个学期可以有多个类(class)条目,每个条目与一个类(class)相关。 Classes 表中的每条记录都属于一所特定的大学。一个用户在 ClassEntries 表中可以有 1 个学期的多个条目(通常为 5 个)。他们的时间表由具有相同学期 ID 的所有 ClassEntries 组成。
我不确定我是否应该使用名为 Schedule 的第三个模型,该模型将手头用户的 ClassEntries 和 Classes 模型中的信息汇集在一起。我最初是用 PHP 编写此功能的,我只是使用 MySQL JOIN 来收集必要的信息。在 Rails 中,似乎应该有更好的方法来完成此任务。
在 Rails 中解决这个问题的最佳方法是什么?
非常感谢
最佳答案
因此,您正在寻找的是 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.courses
或 some_course.users
它将通过 CourseEntry 为您加入。
如果这有帮助,请告诉我。如果您需要我更深入地了解,请告诉我。
关于ruby-on-rails - Rails 2 个表,1 个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13105841/