![](/img/trans.png)
[英]Ruby on Rails, displaying multiple attributes from multiple model instances
[英]Output of an Addition of Attributes of multiple instances of a model
我的基本設置:
我有一個與工作日模型具有has_many / belongs_to關系的用戶模型。
工作日模型具有稱為“銷售”和“日期”的屬性。
我想做的是在給定的時間范圍內累加不同工作日實例的銷售屬性。 我首先嘗試首先匯總該用戶的所有銷售額,從而獲得了
NoMethodError: undefined method `sales' for nil:NilClass
代碼如下:
def all_sales
s = 0.to_f
c = @user.workdays.count
for i in (0..c)
s += @user.workdays[i].sales
end
end
最優雅的方式是什么?
編輯1:錯字,它是user.workdays [I]。銷售 ,不.Count之間 。 對於那個很抱歉。
可以通過Arel完成
@user.workdays.sum(:sales)
您也可以查詢特定的時間間隔
@user.workdays.where("date BETWEEN ? AND ?",start_date, end_date).sum(:sales)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.