1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

ActiveRecord::Base#<=> has been removed. Primary keys may not be in order,

or even be numbers, so sorting by id doesn't make sense.  Please use `sort_by`
and specify the attribute you wish to sort with.  For example, change:

  Post.all.to_a.sort

to:

  Post.all.to_a.sort_by(&:id)
This commit is contained in:
Aaron Patterson 2013-09-18 16:09:13 -07:00
parent 096a57b7f3
commit 6256734e2d
3 changed files with 10 additions and 16 deletions

View file

@ -1,3 +1,13 @@
* ActiveRecord::Base#<=> has been removed. Primary keys may not be in order,
or even be numbers, so sorting by id doesn't make sense. Please use `sort_by`
and specify the attribute you wish to sort with. For example, change:
Post.all.to_a.sort
to:
Post.all.to_a.sort_by(&:id)
* Fix: joins association, with defined in the scope block constraints by using several * Fix: joins association, with defined in the scope block constraints by using several
where constraints and at least of them is not `Arel::Nodes::Equality`, where constraints and at least of them is not `Arel::Nodes::Equality`,
generates invalid SQL expression. generates invalid SQL expression.

View file

@ -308,15 +308,6 @@ module ActiveRecord
@attributes.frozen? @attributes.frozen?
end end
# Allows sort on objects
def <=>(other_object)
if other_object.is_a?(self.class)
self.to_key <=> other_object.to_key
else
super
end
end
# Returns +true+ if the record is read only. Records loaded through joins with piggy-back # Returns +true+ if the record is read only. Records loaded through joins with piggy-back
# attributes will be marked as read only since they cannot be saved. # attributes will be marked as read only since they cannot be saved.
def readonly? def readonly?

View file

@ -558,13 +558,6 @@ class BasicsTest < ActiveRecord::TestCase
assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ] assert_equal [ Topic.find(1) ], [ Topic.find(2).topic ] & [ Topic.find(1) ]
end end
def test_comparison
topic_1 = Topic.create!
topic_2 = Topic.create!
assert_equal [topic_2, topic_1].sort, [topic_1, topic_2]
end
def test_create_without_prepared_statement def test_create_without_prepared_statement
topic = Topic.connection.unprepared_statement do topic = Topic.connection.unprepared_statement do
Topic.create(:title => 'foo') Topic.create(:title => 'foo')