Каждый день мне нужно запустить сценарий и отправить всем моим пользователям "экзамен" или набор вопросов. Я смоделировал в качестве класса "Экзамен", который подклассифицирует ActiveRecord :: Base. Теперь, как отправить пользовательские экземпляры экзамена?
То, о чем я думал, это создать новый класс под названием "ExamInstance", который будет иметь ссылку на "Экзамен" и пользователя.
Я новичок в 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
Вы можете создать свою новую модель следующим образом.
class ExamUser < ActiveRecord::Base
belongs_to :user # user has many exams
belongs_to :exam # exam has many users
end
Добавьте модель "ExamUser", чтобы отслеживать экзамен и соответствующие ссылки пользователей. Скелет модели будет выглядеть примерно так:
class ExamUser < ActiveRecord::Base
belongs_to :exam
belongs_to :user
end
Затем вы можете просмотреть записи этой таблицы, чтобы отправить свои вопросы.