编辑我的问题,以更具体地说明我在问什么......
我在我的数据中嵌套了关联,我急切加载,然后想使用collect来做一些子处理。所以说我的帖子有包含所有者属性的评论。所以我做了
Post.includes(:comments).collect(&:owner)
..然后与业主做一些事情。是否有更好的方法来抢夺所有者?
答案 0 :(得分:2)
您在寻找pluck
吗?
Client.where(:active => true).pluck(:id) # SELECT id FROM clients WHERE active = 1 Client.uniq.pluck(:role) # SELECT DISTINCT role FROM clients
答案 1 :(得分:1)
Model.today.select([:attr1, :attr2, :attr3]) # chainable method
# will generate this query
# SELECT attr1, attr2, attr3 FROM models
答案 2 :(得分: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')