0

sales私の基本的なセットアップ:
Workday モデルと has_many/belongs_to 関係を持つユーザー モデルがあります。
Workday モデルには、「売上」と「日付」という属性があります。

私がやりたいことは、特定の期間中のさまざまな就業日のインスタンスの売上属性を合計することです。まず最初に、そのユーザーからのすべての売上を合計しようとすることから始めました。

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: タイプミス、それは.countではなくuser.workdays [i].salesでした。申し訳ありません。

4

1 に答える 1

1

それはArelを通して行うことができます

@user.workdays.sum(:sales)

また、特定の時間間隔を照会することもできます

@user.workdays.where("date BETWEEN ? AND ?",start_date, end_date).sum(:sales)
于 2012-07-26T00:01:14.327 に答える