Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Activerecord 属于并且拥有许多相同的项目_Activerecord - Fatal编程技术网

Activerecord 属于并且拥有许多相同的项目

Activerecord 属于并且拥有许多相同的项目,activerecord,Activerecord,我正在为一个课程表建模,该课程属于一个用户、教师和课程的创建者,而且,该课程可以有许多学生,他们也是用户 所以应该是这样的 class Lesson < ActiveRecord::Base belongs_to :user has_many :users end 课程

我正在为一个课程表建模,该课程属于一个用户、教师和课程的创建者,而且,该课程可以有许多学生,他们也是用户

所以应该是这样的

class Lesson < ActiveRecord::Base
  belongs_to :user
  has_many :users
end
课程

我想打电话给第一个用户老师,以及用户集合学生,我已经阅读了上的文档,但我找不到我想要的内容。

这应该是您想要的:

我想您需要
class\u name
选项:

class Lesson < ActiveRecord::Base
  belongs_to :teacher, class_name: "User"
  has_many :students, class_name: "User"
end
课程
这应该是您想要的:

我想您需要
class\u name
选项:

class Lesson < ActiveRecord::Base
  belongs_to :teacher, class_name: "User"
  has_many :students, class_name: "User"
end
课程
在当前代码中,所有用户都可以是课程的“所有者”(教师),相反,您应该有两个额外的类“学生”和“教师”,它们都与“用户”类具有1:1的关系

这更适合:

class Teacher < ActiveRecord::Base
  has_one :user
end

class Student < ActiveRecord::Base
  has_one :user
end

class Lesson < ActiveRecord::Base
  belongs_to :teacher
  has_many :students
end
班主任
在当前代码中,所有用户都可以是课程的“所有者”(教师),相反,您应该有两个额外的类“学生”和“教师”,它们都与“用户”类具有1:1的关系

这更适合:

class Teacher < ActiveRecord::Base
  has_one :user
end

class Student < ActiveRecord::Base
  has_one :user
end

class Lesson < ActiveRecord::Base
  belongs_to :teacher
  has_many :students
end
班主任
但学生可以成为教师,反之,所有用户都可以创建课程并学习其他用户的课程。如果学生将其班级改为“教师”,或者反之亦然,则用户实例将持续存在,关联将发生变化。如果你不需要预过滤,我会坚持Jeremy Ruten的解决方案。但是学生可以成为教师,反之,所有用户都可以创建课程并学习其他用户的课程。在这种情况下,学生会将其类更改为“教师”,反之亦然,用户实例将持续存在,关联将发生变化。如果你不需要预过滤,我会坚持Jeremy Ruten的解决方案。哦,糟糕,我写了
属于
,而不是
有很多
。是的,它有相同的
类名
选项,所以它的工作方式是相同的。看看上面的链接,第2.10节:上面例子中的“下属”和“经理”(分别是“老师”和“学生”)是用户类的别名,所以是的,
有许多
可以工作。哦,哎呀,我写了
属于
而不是
有很多
。是的,它有相同的
类名称
选项,因此它的工作方式相同。请查看上面的链接,第2.10节:上面示例中的名称“下属”和“经理”(分别是“教师”和“学生”)是用户类的别名,因此是的,
有许多
将起作用。