我尝试以用户可以创建课程的方式设置模型,然后其他用户可以注册它们。
现在我的模型设置如下:
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访问已注册课程的用户。我也希望能够获得学生参与的所有课程(无法通过我当前的设置真正了解我的做法)。
我的模特协会是否适合我如何使用它们?如果是这样,我如何创建迁移以向数据库模型添加必要的引用?
答案 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