0

毎日、スクリプトを実行して、すべてのユーザーに「試験」または一連の問題を送信する必要があります。ActiveRecord::Base をサブクラス化するクラス「Exam」としてモデル化しました。では、ユーザーの Exam のインスタンスを送信するにはどうすればよいでしょうか?

私が考えていたのは、「Exam」とユーザーへの参照を持つ「ExamInstance」という新しいクラスを作成することでした。

私は 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 に答える