每天,我需要运行脚本并向我的所有用户发送“考试”或一组问题。我已将其建模为 ActiveRecord::Base 的子类“考试”。现在,我如何发送用户的考试实例?
我在想的是创建一个名为“ExamInstance”的新类,它将引用“Exam”和用户。
我是 SQL 和 ActiveRecord 的新手,所以如果有人可以帮助我更好地对此进行建模,以便我以后可以避免出现问题,或者只是给我一些见解,那就太好了。
谢谢
每天,我需要运行脚本并向我的所有用户发送“考试”或一组问题。我已将其建模为 ActiveRecord::Base 的子类“考试”。现在,我如何发送用户的考试实例?
我在想的是创建一个名为“ExamInstance”的新类,它将引用“Exam”和用户。
我是 SQL 和 ActiveRecord 的新手,所以如果有人可以帮助我更好地对此进行建模,以便我以后可以避免出现问题,或者只是给我一些见解,那就太好了。
谢谢
我建议只使用为和之间的多对多关系has_many :through
创建模型UserExam
exam
user
class User < ActiveRecord::Base
has_many :users_exams
has_many :exams, :through => :users_exams
end
class UserExam < ActiveRecord::Base
belongs_to :users
belongs_to :exams
end
class Exam < ActiveRecord::Base
has_many :users_exams
has_many :users, :through => :users_exams
end
有关更多信息has_many :through
添加“ExamUser”模型以跟踪考试和相应的用户参考。模型骨架看起来像:
class ExamUser < ActiveRecord::Base
belongs_to :exam
belongs_to :user
end
然后,您可以遍历此表的记录以发送您的问题。
你可以像这样设计你的新模型..
class ExamUser < ActiveRecord::Base
belongs_to :user # user has many exams
belongs_to :exam # exam has many users
end