mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix that #pluck wasn't rescuing ThrowResult, meaning it would blow up when failing to construct_limited_ids_condition.
This commit is contained in:
parent
1f11dbf0b4
commit
2fcafee250
2 changed files with 8 additions and 0 deletions
|
@ -189,6 +189,8 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
columns.one? ? result.map!(&:first) : result
|
columns.one? ? result.map!(&:first) : result
|
||||||
end
|
end
|
||||||
|
rescue ThrowResult
|
||||||
|
[]
|
||||||
end
|
end
|
||||||
|
|
||||||
# Pluck all the ID's for the relation using the table's primary key
|
# Pluck all the ID's for the relation using the table's primary key
|
||||||
|
|
|
@ -6,6 +6,7 @@ require 'models/edge'
|
||||||
require 'models/organization'
|
require 'models/organization'
|
||||||
require 'models/possession'
|
require 'models/possession'
|
||||||
require 'models/topic'
|
require 'models/topic'
|
||||||
|
require 'models/reply'
|
||||||
require 'models/minivan'
|
require 'models/minivan'
|
||||||
require 'models/speedometer'
|
require 'models/speedometer'
|
||||||
require 'models/ship_part'
|
require 'models/ship_part'
|
||||||
|
@ -539,6 +540,11 @@ class CalculationsTest < ActiveRecord::TestCase
|
||||||
assert_equal Company.all.map(&:id).sort, Company.ids.sort
|
assert_equal Company.all.map(&:id).sort, Company.ids.sort
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_pluck_with_includes_limit_and_empty_result
|
||||||
|
assert_equal [], Topic.includes(:replies).limit(0).pluck(:id)
|
||||||
|
assert_equal [], Topic.includes(:replies).limit(1).where('0 = 1').pluck(:id)
|
||||||
|
end
|
||||||
|
|
||||||
def test_pluck_not_auto_table_name_prefix_if_column_included
|
def test_pluck_not_auto_table_name_prefix_if_column_included
|
||||||
Company.create!(:name => "test", :contracts => [Contract.new(:developer_id => 7)])
|
Company.create!(:name => "test", :contracts => [Contract.new(:developer_id => 7)])
|
||||||
ids = Company.includes(:contracts).pluck(:developer_id)
|
ids = Company.includes(:contracts).pluck(:developer_id)
|
||||||
|
|
Loading…
Reference in a new issue