mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Deprecate ActiveRecord::Result#to_hash in favor of #to_a
method returns an array of hashes, not a hash e.g. Hash.try_convert(result) calls #to_hash and raises a TypeError [Gannon McGibbon + Kevin Cheng]
This commit is contained in:
parent
e925cb4d85
commit
16510d609c
4 changed files with 27 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
|||
* Deprecate `ActiveRecord::Result#to_hash` in favor of `ActiveRecord::Result#to_a`.
|
||||
|
||||
*Gannon McGibbon*, *Kevin Cheng*
|
||||
|
||||
* SQLite3 adapter supports expression indexes.
|
||||
|
||||
```
|
||||
|
|
|
@ -576,7 +576,7 @@ module ActiveRecord
|
|||
column
|
||||
end
|
||||
else
|
||||
basic_structure.to_hash
|
||||
basic_structure.to_a
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ module ActiveRecord
|
|||
# ]
|
||||
#
|
||||
# # Get an array of hashes representing the result (column => value):
|
||||
# result.to_hash
|
||||
# result.to_a
|
||||
# # => [{"id" => 1, "title" => "title_1", "body" => "body_1"},
|
||||
# {"id" => 2, "title" => "title_2", "body" => "body_2"},
|
||||
# ...
|
||||
|
@ -66,10 +66,18 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
# Returns an array of hashes representing each row record.
|
||||
def to_hash
|
||||
def to_a
|
||||
hash_rows
|
||||
end
|
||||
|
||||
def to_hash
|
||||
ActiveSupport::Deprecation.warn(<<-MSG.squish)
|
||||
`ActiveRecord::Result#to_hash` has been renamed to `to_a`.
|
||||
`to_hash` is deprecated and will be removed in Rails 6.1.
|
||||
MSG
|
||||
to_a
|
||||
end
|
||||
|
||||
alias :map! :map
|
||||
alias :collect! :map
|
||||
|
||||
|
|
|
@ -21,12 +21,22 @@ module ActiveRecord
|
|||
assert_equal 3, result.length
|
||||
end
|
||||
|
||||
test "to_hash returns row_hashes" do
|
||||
test "to_a returns row_hashes" do
|
||||
assert_equal [
|
||||
{ "col_1" => "row 1 col 1", "col_2" => "row 1 col 2" },
|
||||
{ "col_1" => "row 2 col 1", "col_2" => "row 2 col 2" },
|
||||
{ "col_1" => "row 3 col 1", "col_2" => "row 3 col 2" },
|
||||
], result.to_hash
|
||||
], result.to_a
|
||||
end
|
||||
|
||||
test "to_hash (deprecated) returns row_hashes" do
|
||||
assert_deprecated do
|
||||
assert_equal [
|
||||
{ "col_1" => "row 1 col 1", "col_2" => "row 1 col 2" },
|
||||
{ "col_1" => "row 2 col 1", "col_2" => "row 2 col 2" },
|
||||
{ "col_1" => "row 3 col 1", "col_2" => "row 3 col 2" },
|
||||
], result.to_hash
|
||||
end
|
||||
end
|
||||
|
||||
test "first returns first row as a hash" do
|
||||
|
|
Loading…
Reference in a new issue