On Mar 25, 2010, at 3:57 PM, Alex Bowyer wrote:

I have a fairly simple scenario:

Voters (name + email address) vote on Choices (name, details, URL)
I want voters to be able to pick one "first choice", one "second
choice" and one "third choice" - their vote consists of these exactly
3 selections.

So the two questions to answer are
1) what's the best way to model this
2) how to create a form where the user can select these three choices

1) Model

Based on what I've learnt so far, i'm thinking a link table would work
- voter_choices...
ie.
Voter has_many Choices :through voter_choices
Choices has_many Voters :through voter_choices
then fix it to be just 3 votes with validation
I was thinking then add a "rank" field to the link table and use
validation to ensure there is only ever one entry per user for each
rank (1,2,3)

Is this the best way to model it or is there a better way?


It's very dependent on the application: is the number of choices hard- coded? In other words, will the client come along next week and say, "Could you have them pick a *fourth* choice?"

If first/second/third (think Olympic medals: they aren't going to add a "copper" medal, one presumes) aren't going to change, it might be sufficient to just put the 3 FKs in a record. The solution you've described is more flexible, but *much* more complicated.

--Matt Jones

--
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to