编辑了我的问题以更具体地说明我在问什么..
我在我的数据中有嵌套的关联,我渴望加载这些关联,然后想要使用 collect 进行一些子处理。因此,假设我的帖子中的评论具有所有者属性。所以我愿意
Post.includes(:comments).collect(&:owner)
..然后与业主做一些事情。有没有更好的方法来抢业主?
编辑了我的问题以更具体地说明我在问什么..
我在我的数据中有嵌套的关联,我渴望加载这些关联,然后想要使用 collect 进行一些子处理。因此,假设我的帖子中的评论具有所有者属性。所以我愿意
Post.includes(:comments).collect(&:owner)
..然后与业主做一些事情。有没有更好的方法来抢业主?
你在找pluck
吗?
Client.where(:active => true).pluck(:id) # SELECT id FROM clients WHERE active = 1 Client.uniq.pluck(:role) # SELECT DISTINCT role FROM clients
Model.today.select([:attr1, :attr2, :attr3]) # chainable method
# will generate this query
# SELECT attr1, attr2, attr3 FROM models
如果您添加 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')