模型结构& has_many Association Migrations

时间:2016-08-19 13:58:32

标签: ruby-on-rails

我尝试以用户可以创建课程的方式设置模型,然后其他用户可以注册它们。

现在我的模型设置如下:

class Lesson < ApplicationRecord
  belongs_to :teacher, class_name: 'User'
  has_many :students, class_name: 'User'
end

class User < ApplicationRecord
  has_many :lessons
  has_many :students, :through => :lessons
end

我希望能够通过@ lesson.students访问已注册课程的用户。我也希望能够获得学生参与的所有课程(无法通过我当前的设置真正了解我的做法)。

我的模特协会是否适合我如何使用它们?如果是这样,我如何创建迁移以向数据库模型添加必要的引用?

1 个答案:

答案 0 :(得分:0)

如果您希望能够从父母那里创建嵌套资源,那么您必须添加:

accepts_nested_attributes_for

到父模型。

此外,我建议您阅读how to set up has_many through relationships需要一个关于rails的连接模型,以实现其魔力并链接2个模型

设置好所有内容后,创建连接模型(使用它的相应外键,一个用于课程,另一个用于用户)rails将处理模型之间的关联,允许您执行类似的操作:

User.last.lessons #lessons created by the last user

Lesson.first.users #users subscribed to a lesson, in this case the first one