Rails 2表,1个型号

时间:2012-10-28 02:15:22

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

我对ruby / rails比较新,我有以下问题:

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

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

在Rails中实现这一目标的最佳方法是什么?

非常感谢

1 个答案:

答案 0 :(得分: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.coursessome_course.users它将通过CourseEntry为您创建联接。

如果这有帮助,请告诉我。如果你需要我更深入了解,请告诉我。