在rails应用程序中使用.average和rubip中的.pluck?

在我的应用程序中,我想看到我的用户的平均纸张使用重量,它注册到Heavy类。

user模型has_many :paperspaper模型belongs_to :user

这是我到目前为止所得到的: @heavy_users_testing = User.where(industry_type: 'Heavy').joins(:papers).where("papers.paper_type = 'Officepaper'").pluck(:paper_weight)

我不知道在哪里可以使用active record .average来获取Heavy类别用户的平均Officepaper权重?

有人可以告诉我吗?

你可以在pluck使用sql avg函数

 @heavy_users_testing = User.where(industry_type: 'Heavy') .joins(:papers) .where(papers: { paper_type: 'Officepaper' } ) .pluck('avg(paper_weight)') 

如果您想要/需要EACH用户的平均值,您需要做一个group

 @heavy_users_testing = User.where(industry_type: 'Heavy') .joins(:papers) .where(papers: { paper_type: 'Officepaper' } ) .group(:user_id) .pluck('avg(paper_weight)')