I think we're missing DRY but this is the answer I was looking for! Thanks, Greg!
Em quinta-feira, 19 de maio de 2016 06:06:20 UTC-3, Greg Navis escreveu: > > Composing scopes is completely normal - they are clear, easy to test and > can serve as building blocks. What you need to keep in mind is to keep your > code DRY. > > For example, if you have an e-commerce site selling guitars and from the > data you see that high-end left-handed guitars are most often bough by male > left-handed adults then you don't want to litter the code with multiple > occurrences of `Person.male.adult.left_handed`. This is an implementation > detail. You should define a scope (or a class method) > `Person.best_high_end_left_handed_buyers` and define it to equal > `Person.male.adult.left_handed`. If requirements change at a later point in > time you can just change the definition. (Alternatively you can define a > private method that returns the scope in your controller). > > TL;DR: It's normal to chain scopes but keep your code DRY and make your > code express your intent. > -- > Greg Navis > I help tech companies to scale Heroku-hosted Rails apps. > Free, biweekly scalability newsletter for SaaS CEOs > <http://www.gregnavis.com/newsletter/> > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/53fbdfad-3adf-470c-a6fd-7fece4fbc8ca%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

