Skip to content

Commit

Permalink
Merge pull request #6091 from twinturbo/add-ids
Browse files Browse the repository at this point in the history
Add ActiveRecord::Base#ids - Close #5812
  • Loading branch information
wycats committed Apr 30, 2012
2 parents c435feb + 9307616 commit 69c2307
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
10 changes: 10 additions & 0 deletions activerecord/lib/active_record/relation/calculations.rb
Expand Up @@ -139,6 +139,16 @@ def pluck(column_name)
end
end

# Pluck all the ID's for the relation using the table's primary key
#
# Examples:
#
# Person.ids # SELECT people.id FROM people
# Person.joins(:companies).ids # SELECT people.id FROM PEOPLE INNER JOIN companies ON companies.person_id = people.id
def ids
pluck primary_key
end

private

def perform_calculation(operation, column_name, options = {})
Expand Down
4 changes: 4 additions & 0 deletions activerecord/test/cases/calculations_test.rb
Expand Up @@ -465,4 +465,8 @@ def test_pluck_not_auto_table_name_prefix_if_column_joined
Company.create!(:name => "test", :contracts => [Contract.new(:developer_id => 7)])
assert_equal [7], Company.joins(:contracts).pluck(:developer_id)
end

def test_plucks_with_ids
assert_equal Company.all.map(&:id), Company.ids
end
end

0 comments on commit 69c2307

Please sign in to comment.