aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/query_methods.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/relation/query_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/query_methods.rb14
1 files changed, 8 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb
index e71f1cca72..cd6c6f8d1f 100644
--- a/activerecord/lib/active_record/relation/query_methods.rb
+++ b/activerecord/lib/active_record/relation/query_methods.rb
@@ -49,7 +49,9 @@ module ActiveRecord
def where(opts, *rest)
value = build_where(opts, rest)
- value ? clone.tap {|r| r.where_values += Array.wrap(value) } : clone
+ copy = clone
+ copy.where_values += Array.wrap(value) if value
+ copy
end
def having(*args)
@@ -58,7 +60,9 @@ module ActiveRecord
end
def limit(value = true)
- clone.tap {|r| r.limit_value = value }
+ copy = clone
+ copy.limit_value = value
+ copy
end
def offset(value = true)
@@ -131,9 +135,7 @@ module ActiveRecord
arel = build_joins(arel, @joins_values) unless @joins_values.empty?
- @where_values.uniq.each do |where|
- next if where.blank?
-
+ (@where_values - ['']).uniq.each do |where|
case where
when Arel::SqlLiteral
arel = arel.where(where)
@@ -217,7 +219,7 @@ module ActiveRecord
end
def build_select(arel, selects)
- if selects.present?
+ unless selects.empty?
@implicit_readonly = false
# TODO: fix this ugly hack, we should refactor the callers to get an ARel compatible array.
# Before this change we were passing to ARel the last element only, and ARel is capable of handling an array