I'm running a Rails 4 app and have a question about how to structure it. My application has users
. These users have many fields that can be grouped into categories, such as Personal Info
, Work Info
, Home
, etc.
My question deals with whether I should make separate models for each of these subgroups so users
have many has_one
associations, or instead just name the fields in the following fashion: personal_info_name
, personal_info_address
, work_info_address
, etc.
Here are some of my thoughts for grouping into models:
Pros:
- organization
- readibility
Cons:
- takes more database space
- more models means more files/overhead
Is there a "Rails-way" to do this/what are some other pros/cons for having multiple models?
P.S.
I've read a bit about the "fat model, skinny controller" ideas, but am not sure I entirely understand them (if they pertain to the question).
You should still use proper
has_one
relations, but utilize ActiveRecorddelegate
s to create shortcut methods:Of course, assuming you are using Active Record as an ORM. Otherwise, you could go the manual route: