0

J'ai 3 catégories de catégories, questions et quiz et 5 catégories de tableaux, des questions, des quiz, des catégories de questions, et des questions questions.RoR suggestion de relation de modèle nécessaire

Un quiz comporte de nombreuses questions et peut appartenir à zéro ou plusieurs catégories. Aussi une question peut appartient à de nombreux jeux-questionnaires

un corps peut-il suggérer comment devrait être la relation entre les modèles

de schéma de table

suit

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), 
); 

Mes cours actuels modèles

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 

Répondre

0

Le migration pour la table category_quizzes n'est pas correcte. Il devrait être categories_quizzes, les deux au pluriel.

Ensuite, vous pouvez spécifier les associations comme celle-ci:

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 

Edit: Modification des associations en fonction de votre commentaire

+0

En fait, une question peut apparaître dans de nombreux Quiz –

+0

Bon, édité ma réponse. – DanneManne