method
construct_count_options_from_legacy_args
v1.2.6 -
Show latest stable
- Class:
ActiveRecord::Calculations::ClassMethods
construct_count_options_from_legacy_args(*args)protected
No documentation available.
# File activerecord/lib/active_record/calculations.rb, line 128
def construct_count_options_from_legacy_args(*args)
options = {}
column_name = :all
# We need to handle
# count()
# count(options={})
# count(column_name=:all, options={})
# count(conditions=nil, joins=nil) # deprecated
if args.size > 2
raise ArgumentError, "Unexpected parameters passed to count(options={}): #{args.inspect}"
elsif args.size > 0
if args[0].is_a?(Hash)
options = args[0]
elsif args[1].is_a?(Hash)
column_name, options = args
else
# Deprecated count(conditions, joins=nil)
ActiveSupport::Deprecation.warn(
"You called count(#{args[0].inspect}, #{args[1].inspect}), which is a deprecated API call. " +
"Instead you should use count(column_name, options). Passing the conditions and joins as " +
"string parameters will be removed in Rails 2.0.", caller(2)
)
options.merge!(:conditions => args[0])
options.merge!(:joins => args[1]) if args[1]
end
end
[column_name, options]
end