1

编辑了我的问题以更具体地说明我在问什么..

我在我的数据中有嵌套的关联,我渴望加载这些关联,然后想要使用 collect 进行一些子处理。因此,假设我的帖子中的评论具有所有者属性。所以我愿意

Post.includes(:comments).collect(&:owner)

..然后与业主做一些事情。有没有更好的方法来抢业主?

4

3 回答 3

2

你在找pluck吗?

Client.where(:active => true).pluck(:id)
# SELECT id FROM clients WHERE active = 1

Client.uniq.pluck(:role)
# SELECT DISTINCT role FROM clients
于 2013-04-15T15:29:59.017 回答
1

尝试Activerecord::Base#select

Model.today.select([:attr1, :attr2, :attr3]) # chainable method
# will generate this query
# SELECT attr1, attr2, attr3 FROM models
于 2013-04-15T15:25:24.530 回答
0

如果您添加 has_many_through 关联,Rails 将解决您想要的问题。

class Post < ActiveRecord::Base
  has_many :comments
  has_many :commenters, through: :comments, source: :owner
  ...
end

male_gardeners = Post.find_by(slug: 'in_the_garden').commenters.where(gender: 'M')
于 2013-04-16T02:21:47.260 回答