0

每天,我需要运行脚本并向我的所有用户发送“考试”或一组问题。我已将其建模为 ActiveRecord::Base 的子类“考试”。现在,我如何发送用户的考试实例?

我在想的是创建一个名为“ExamInstance”的新类,它将引用“Exam”和用户。

我是 SQL 和 ActiveRecord 的新手,所以如果有人可以帮助我更好地对此进行建模,以便我以后可以避免出现问题,或者只是给我一些见解,那就太好了。

谢谢

4

3 回答 3

0

我建议只使用为和之间的多对多关系has_many :through创建模型UserExamexamuser

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

于 2012-10-31T05:42:40.483 回答
0

添加“ExamUser”模型以跟踪考试和相应的用户参考。模型骨架看起来像:


class ExamUser < ActiveRecord::Base
  belongs_to :exam
  belongs_to :user
end

然后,您可以遍历此表的记录以发送您的问题。

于 2012-10-31T05:46:54.857 回答
0

你可以像这样设计你的新模型..

  class ExamUser < ActiveRecord::Base
   belongs_to :user  # user has many exams
   belongs_to :exam  #  exam has many users
  end
于 2012-10-31T06:39:37.833 回答