- Never build beyond the application requirements at the time you are writing the code.
- If you do not have concrete requirements, don’t write any code.
- Don’t jump to a model prematurely; there are often simple ways, such as using Booleans and denormalization, to avoid using adding additional models.
- If there is no user interface for adding, removing, or managing data, there is no need for a model. A denormalized column populated by a hash or array of possi- ble values is fine.
source : Rails AntiPatterns : Best Practice Ruby On Rails Refactoring – by Chad Pytel and Tamer Saleh