Требуется предложение о связи модели RoR - PullRequest
0 голосов
/ 23 ноября 2010

У меня есть 3 категории моделей, вопросы и викторины и 5 категорий таблиц, вопросы, викторины, category_quizzes и questions_quizzes.

Викторина имеет много вопросов и может принадлежать к нулю или более категориям.Также вопрос может относиться ко многим опросам

Может ли какой-то орган подсказать, каким должно быть соотношение между моделями

Схема таблицы следует

CREATE TABLE categories (
  id int(11) unsigned NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  PRIMARY KEY  (id),
);

CREATE TABLE category_quizzes (
  id int(11) unsigned NOT NULL auto_increment,
  category_id int(11) unsigned NOT NULL,
  quiz_id int(11) unsigned NOT NULL,
  PRIMARY KEY  (id),
  KEY category_id (category_id,quiz_id),
  KEY quiz_id (quiz_id)
);

CREATE TABLE questions (
  id int(11) unsigned NOT NULL auto_increment,
  question varchar(255) NOT NULL,
  answer varchar(255) NOT NULL,
  PRIMARY KEY  (id),
);

CREATE TABLE questions_quizzes (
  id int(11) unsigned NOT NULL auto_increment,
  quiz_id int(11) unsigned NOT NULL,
  question_id int(11) unsigned NOT NULL,
  PRIMARY KEY  (id),
  KEY quiz_id (quiz_id,question_id),
  KEY question_id (question_id)
);

CREATE TABLE quizzes (
  id int(11) unsigned NOT NULL auto_increment,
  title varchar(255) NOT NULL,
  PRIMARY KEY  (id),
);

Мои текущие классы моделей

class Category < ActiveRecord::Base
    has_and_belongs_to_many :quiz
end

class Question < ActiveRecord::Base
    has_and_belongs_to_many :quiz
end

class Quiz < ActiveRecord::Base
  has_many   :questions
  has_and_belongs_to_many :categories
end

1 Ответ

0 голосов
/ 23 ноября 2010

Миграция для таблицы category_quizzes неверна.Это должны быть category_quizzes, оба в множественном числе.

Тогда вы можете указать ассоциации следующим образом:

class Category < ActiveRecord::Base
  has_and_belongs_to_many :quizzes
end

class Question < ActiveRecord::Base
  has_and_belongs_to_many :quizzes
end

class Quiz < ActiveRecord::Base
  has_and_belongs_to_many :questions
  has_and_belongs_to_many :categories
end

Редактировать: Изменены ассоциации согласно вашему комментарию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...