diff options
Diffstat (limited to 'config/initializers/active_record_build_select.rb')
-rw-r--r-- | config/initializers/active_record_build_select.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/config/initializers/active_record_build_select.rb b/config/initializers/active_record_build_select.rb index ab5a872cac6..48f1b1ee407 100644 --- a/config/initializers/active_record_build_select.rb +++ b/config/initializers/active_record_build_select.rb @@ -9,6 +9,10 @@ # statement cache. If a different migration is then run and one of these columns is # removed in the meantime, the query is invalid. +ActiveRecord::Base.class_eval do + class_attribute :enumerate_columns_in_select_statements +end + module ActiveRecord module QueryMethods private @@ -16,6 +20,8 @@ module ActiveRecord def build_select(arel) if select_values.any? arel.project(*arel_columns(select_values.uniq)) + elsif klass.enumerate_columns_in_select_statements + arel.project(*klass.column_names.map { |field| table[field] }) else arel.project(@klass.arel_table[Arel.star]) end |