I have several hairy SQL queries that join and select columns from multiple tables. The standard AR pattern:
MyModel.find_by_sql(hairy_sql_query)
has rules about which attributes in MyModel are preserved and which attributes are added as a result of the query. The problem is that the dynamic finders and accessor methods from MyModel can intermingle and sometimes shadow attributes returned as a result of the query.
It seems you could create a vanilla model:
class Vanilla < ActiveRecord::Base end
whose sole job is to act as a container for find_by_sql() queries, e.g.:
Vanilla.find_by_sql(hairy_sql_query)
Can you think of any flaws to this approach (before I go and create a new git branch :)?
- ff