In my app , a user can create a set of question then a table is
dynamily created , in the database,to store the answers of the
questions. the name of the table is answers_x (x is the id of the
questionniare).
Is it possible to dynamicly create a model, to handle the answer_x
tables ?? I can’t manually create a model then restart the server.
In my app , a user can create a set of question then a table is
dynamily created , in the database,to store the answers of the
questions. the name of the table is answers_x (x is the id of the
questionniare).
Is it possible to dynamicly create a model, to handle the answer_x
tables ?? I can’t manually create a model then restart the server.
Why a different table per set of questions?
Sounds like what you need is actually are more generic models (Quizzes
and Quizitems?) that stores lists of questions and answers.
Assuming you have a User model defined somewhere else…
User
has_many :quizzes
Quiz
belongs_to :user
has_many :quizitems
Quizitem
belongs_to :quiz
where a quizitem contains a question and an answer… maybe points if
you’re scoring them somehow.
where a quizitem contains a question and an answer… maybe points if
you’re scoring them somehow.
a question is asked to a lot of people. For a quizitem there are many
answers.
We don’t know by advance the type of the answer. It may be an integer,
(what is the age of the captain) or a string (what is the name of the
captain).
It’s up to the end user. He defines the quizz. and other people answer
to that quizz.
Hmm… then the end user can define the expected type of the response:
number, text, date, time, whatever.
User
has_many :questions
Question
belongs_to :user
has_many :answers
question has a prompt, also has a ‘type’ for the answer. You can
store all the answers as string, and just run a validation of an answer
according to the expected ‘type’ for the response. if the expected type
is a number, take the answer text and see if it can convert cleanly to a
number. Perhaps a polymorphic Answer where you can have a numeric
answer, a text answer, etc.
Generating a new model for each question is not the right way to do
this. I feel you are making things way too hard. There is no reason you
can’t just use a solution similar to what Ar Chron explained. In short,
create a Question and Answer model. Just store the answers as string and
the questions as strings and then store the type of the question /
answer as well and simply cast the answer to the type. or go the
polymorphic route and have an answer model for each possible answer
type. Bottom line, creating arbitrary dynamic models for each question
is simply not the path to take.