Hi, I have a Question model where the answer to the question can have multiple db type (integer, string, boolean, ...). I would like to know if you have a better solution than this one: Question: question:string answer_type:string AnsweredQuestion: question_id:integer answer:text answer_type:string Ex: AnsweredQuestion.create(:question => 1, :answer => '5', :answer_type => 'Integer') My problem with this solution is that I can't question is that I can't question the answered questions where the answer is > 2. Any better idea?
on 2012-05-02 22:25
on 2012-05-02 23:42
On 2 May 2012, at 21:25, Greg Ma <lists@ruby-forum.com> wrote: > Hi, > > I have a Question model where the answer to the question can have > multiple db type (integer, string, boolean, ...). I've had a similar situation. I'd use STI to have different models for different answer types. My repository at http://github.com/ihid/super_sti might help. Email me personally if you want some help with that repository. Jeremy Walker http://www.ihid.co.uk
on 2012-05-03 00:16
Jeremy Walker wrote in post #1059314: > On 2 May 2012, at 21:25, Greg Ma <lists@ruby-forum.com> wrote: > >> Hi, >> >> I have a Question model where the answer to the question can have >> multiple db type (integer, string, boolean, ...). > > I've had a similar situation. I'd use STI to have different models for > different answer types. My repository at > http://github.com/ihid/super_sti might help. Email me personally if you > want some help with that repository. Here's a direct and elegant solution: http://www.mongodb.org/ If rigid schema is the problem, then eliminate your dependence on a pre-defined schema. However, the STI solution mentioned above is probably the next best approach.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.