Make merging of order values consistent
This commit is contained in:
parent
f9a4300415
commit
54a043895f
@ -33,7 +33,7 @@ def merge(r)
|
|||||||
from(r.from_value).
|
from(r.from_value).
|
||||||
having(r.having_values)
|
having(r.having_values)
|
||||||
|
|
||||||
merged_relation.order_values = Array.wrap(order_values) + Array.wrap(r.order_values)
|
merged_relation.order_values = r.order_values if r.order_values.present?
|
||||||
|
|
||||||
merged_relation.create_with_value = @create_with_value
|
merged_relation.create_with_value = @create_with_value
|
||||||
|
|
||||||
|
@ -1865,7 +1865,9 @@ def test_scoped_find_order
|
|||||||
end
|
end
|
||||||
assert scoped_developers.include?(developers(:poor_jamis))
|
assert scoped_developers.include?(developers(:poor_jamis))
|
||||||
assert scoped_developers.include?(developers(:david))
|
assert scoped_developers.include?(developers(:david))
|
||||||
assert scoped_developers.include?(developers(:dev_10))
|
assert ! scoped_developers.include?(developers(:jamis))
|
||||||
|
assert_equal 3, scoped_developers.size
|
||||||
|
|
||||||
# Test without scoped find conditions to ensure we get the right thing
|
# Test without scoped find conditions to ensure we get the right thing
|
||||||
developers = Developer.find(:all, :order => 'id', :limit => 1)
|
developers = Developer.find(:all, :order => 'id', :limit => 1)
|
||||||
assert scoped_developers.include?(developers(:david))
|
assert scoped_developers.include?(developers(:david))
|
||||||
|
@ -625,21 +625,21 @@ def test_default_scoping_with_inheritance
|
|||||||
end
|
end
|
||||||
|
|
||||||
def test_method_scope
|
def test_method_scope
|
||||||
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.salary }
|
expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.salary }
|
||||||
received = DeveloperOrderedBySalary.all_ordered_by_name.collect { |dev| dev.salary }
|
received = DeveloperOrderedBySalary.all_ordered_by_name.collect { |dev| dev.salary }
|
||||||
assert_equal expected, received
|
assert_equal expected, received
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_nested_scope
|
def test_nested_scope
|
||||||
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.salary }
|
expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.salary }
|
||||||
received = DeveloperOrderedBySalary.send(:with_scope, :find => { :order => 'name DESC'}) do
|
received = DeveloperOrderedBySalary.send(:with_scope, :find => { :order => 'name DESC'}) do
|
||||||
DeveloperOrderedBySalary.find(:all).collect { |dev| dev.salary }
|
DeveloperOrderedBySalary.find(:all).collect { |dev| dev.salary }
|
||||||
end
|
end
|
||||||
assert_equal expected, received
|
assert_equal expected, received
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_named_scope_order_appended_to_default_scope_order
|
def test_named_scope_overwrites_default
|
||||||
expected = Developer.find(:all, :order => 'name DESC, salary DESC').collect { |dev| dev.name }
|
expected = Developer.find(:all, :order => 'name DESC').collect { |dev| dev.name }
|
||||||
received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.name }
|
received = DeveloperOrderedBySalary.by_name.find(:all).collect { |dev| dev.name }
|
||||||
assert_equal expected, received
|
assert_equal expected, received
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user