From 3bfc119297ecbfed9e73e2c0df5e3d9ef2fc5463 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Mon, 23 Aug 2010 09:36:36 +0200 Subject: [PATCH] Add a failing test case for [#5424] With the "new" method syntax for clauses, ActiveRecord doesn't merge the default_scope and named scope "order" clauses in the same order. --- activerecord/test/cases/relation_scoping_test.rb | 6 ++++++ activerecord/test/models/developer.rb | 7 +++++++ 2 files changed, 13 insertions(+), 0 deletions(-) diff --git a/activerecord/test/cases/relation_scoping_test.rb b/activerecord/test/cases/relation_scoping_test.rb index d56e5a7..67b509b 100644 --- a/activerecord/test/cases/relation_scoping_test.rb +++ b/activerecord/test/cases/relation_scoping_test.rb @@ -383,6 +383,12 @@ class DefaultScopingTest < ActiveRecord::TestCase assert_equal expected, received end + def test_named_scope_overwrites_default_with_method_syntax + expected = Developer.order('name DESC').collect { |dev| dev.name } + received = DeveloperOrderedBySalaryWithMethodSyntax.by_name.collect { |dev| dev.name } + assert_equal expected, received + end + def test_named_scope_reorders_default expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.name } received = DeveloperOrderedBySalary.reordered_by_name.find(:all).collect { |dev| dev.name } diff --git a/activerecord/test/models/developer.rb b/activerecord/test/models/developer.rb index a140fb8..eda3733 100644 --- a/activerecord/test/models/developer.rb +++ b/activerecord/test/models/developer.rb @@ -97,6 +97,13 @@ class DeveloperOrderedBySalary < ActiveRecord::Base end end +class DeveloperOrderedBySalaryWithMethodSyntax < ActiveRecord::Base + self.table_name = 'developers' + default_scope order('salary DESC') + scope :by_name, order('name DESC') + scope :reordered_by_name, reorder('name DESC') +end + class DeveloperCalledDavid < ActiveRecord::Base self.table_name = 'developers' default_scope :conditions => "name = 'David'" -- 1.7.2