Adding :from scoping to ActiveRecord calculations
Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1229 state:committed]
This commit is contained in:
parent
1f6afe4a74
commit
3b3798506b
|
@ -197,6 +197,8 @@ module ActiveRecord
|
|||
sql << ", #{options[:group_field]} AS #{options[:group_alias]}" if options[:group]
|
||||
if options[:from]
|
||||
sql << " FROM #{options[:from]} "
|
||||
elsif scope && scope[:from]
|
||||
sql << " FROM #{scope[:from]} "
|
||||
else
|
||||
sql << " FROM (SELECT #{distinct}#{column_name}" if use_workaround
|
||||
sql << " FROM #{connection.quote_table_name(table_name)} "
|
||||
|
|
|
@ -2,6 +2,8 @@ require "cases/helper"
|
|||
require 'models/company'
|
||||
require 'models/topic'
|
||||
require 'models/edge'
|
||||
require 'models/club'
|
||||
require 'models/organization'
|
||||
|
||||
Company.has_many :accounts
|
||||
|
||||
|
@ -223,6 +225,10 @@ class CalculationsTest < ActiveRecord::TestCase
|
|||
assert_equal 15, companies(:rails_core).companies.sum(:id)
|
||||
end
|
||||
|
||||
def test_should_sum_scoped_field_with_from
|
||||
assert_equal Club.count, Organization.clubs.count
|
||||
end
|
||||
|
||||
def test_should_sum_scoped_field_with_conditions
|
||||
assert_equal 8, companies(:rails_core).companies.sum(:id, :conditions => 'id > 7')
|
||||
end
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
class Organization < ActiveRecord::Base
|
||||
has_many :member_details
|
||||
has_many :members, :through => :member_details
|
||||
|
||||
named_scope :clubs, { :from => 'clubs' }
|
||||
end
|
Loading…
Reference in New Issue