mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
passing an instance of an AR object to find
is deprecated
please pass the id of the AR object by calling `.id` on the model first.
This commit is contained in:
parent
d92ae6ccca
commit
d35f0033c7
5 changed files with 13 additions and 6 deletions
|
@ -1,3 +1,6 @@
|
|||
* Passing an Active Record object to `find` is now deprecated. Call `.id`
|
||||
on the object first.
|
||||
|
||||
* Passing an Active Record object to `exists?` is now deprecated. Call `.id`
|
||||
on the object first.
|
||||
|
||||
|
|
|
@ -421,7 +421,11 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
def find_one(id)
|
||||
id = id.id if ActiveRecord::Base === id
|
||||
if ActiveRecord::Base === id
|
||||
id = id.id
|
||||
ActiveSupport::Deprecation.warn "You are passing an instance of ActiveRecord::Base to `find`." \
|
||||
"Please pass the id of the object by calling `.id`"
|
||||
end
|
||||
|
||||
column = columns_hash[primary_key]
|
||||
substitute = connection.substitute_at(column, bind_values.length)
|
||||
|
|
|
@ -407,19 +407,19 @@ class EagerAssociationTest < ActiveRecord::TestCase
|
|||
end
|
||||
|
||||
def test_eager_load_has_one_quotes_table_and_column_names
|
||||
michael = Person.all.merge!(:includes => :favourite_reference).find(people(:michael))
|
||||
michael = Person.all.merge!(:includes => :favourite_reference).find(people(:michael).id)
|
||||
references(:michael_unicyclist)
|
||||
assert_no_queries{ assert_equal references(:michael_unicyclist), michael.favourite_reference}
|
||||
end
|
||||
|
||||
def test_eager_load_has_many_quotes_table_and_column_names
|
||||
michael = Person.all.merge!(:includes => :references).find(people(:michael))
|
||||
michael = Person.all.merge!(:includes => :references).find(people(:michael).id)
|
||||
references(:michael_magician,:michael_unicyclist)
|
||||
assert_no_queries{ assert_equal references(:michael_magician,:michael_unicyclist), michael.references.sort_by(&:id) }
|
||||
end
|
||||
|
||||
def test_eager_load_has_many_through_quotes_table_and_column_names
|
||||
michael = Person.all.merge!(:includes => :jobs).find(people(:michael))
|
||||
michael = Person.all.merge!(:includes => :jobs).find(people(:michael).id)
|
||||
jobs(:magician, :unicyclist)
|
||||
assert_no_queries{ assert_equal jobs(:unicyclist, :magician), michael.jobs.sort_by(&:id) }
|
||||
end
|
||||
|
|
|
@ -637,7 +637,7 @@ class RelationTest < ActiveRecord::TestCase
|
|||
|
||||
def test_find_with_list_of_ar
|
||||
author = Author.first
|
||||
authors = Author.find([author])
|
||||
authors = Author.find([author.id])
|
||||
assert_equal author, authors.first
|
||||
end
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ class UniquenessValidationTest < ActiveRecord::TestCase
|
|||
assert t_utf8.save, "Should save t_utf8 as unique"
|
||||
|
||||
# If database hasn't UTF-8 character set, this test fails
|
||||
if Topic.all.merge!(:select => 'LOWER(title) AS title').find(t_utf8).title == "я тоже уникальный!"
|
||||
if Topic.all.merge!(:select => 'LOWER(title) AS title').find(t_utf8.id).title == "я тоже уникальный!"
|
||||
t2_utf8 = Topic.new("title" => "я тоже УНИКАЛЬНЫЙ!")
|
||||
assert !t2_utf8.valid?, "Shouldn't be valid"
|
||||
assert !t2_utf8.save, "Shouldn't save t2_utf8 as unique"
|
||||
|
|
Loading…
Reference in a new issue