A model with a bunch of scopes like `for_activity_feed` or `for_report_A` feel really wrong. Although the `for_` name raises a red flag, this isn't a semantic problem. It feels like these methods are out of the scope of the model's responsibility, particularly when they involve joins with other tables. 

My solution in the past has been to build more generic scopes and then mix-and-match in the controller. I'm not sure that that is the right solution either. The only other thing I can think of would be to extract into a class (i.e. ActivityFeed or ReportA) but that could be an overkill.

Is there a best practice for dealing with this kind of situation.