0

私は現在、このようなものが機能しています:

period_registration = PeriodRegistration.count(:conditions => ["created_at >= ?", 30.days.ago.to_date], group: "date(created_at)")

しかし、私はこのようなことをしたいです:

 period_registration_product = PeriodRegistration.count(:conditions => ["created_at >= ?", 30.days.ago.to_date], group: "period_id.product")

これを行うと、period_registration_productに何も返されません。Period_Registrationモデルにproduct_idがある場合、製品で並べ替える最良の方法は何ですか?

アップデート:

@period_registration_product = PeriodRegistration.joins(:period).where("date(created_at) >= ?", 30.days.ago.to_date).group("periods.product_id").count

結果:

SQLite3::SQLException: ambiguous column name: created_at: SELECT COUNT(*) AS count_all, periods.product_id AS periods_product_id FROM "period_registrations" INNER JOIN "periods" ON "periods"."id" = "period_registrations"."period_id" WHERE (date(created_at) >= '2012-07-25') GROUP BY periods.product_id

どのcreated_atを確認するか、または指定する必要がありますperiodperiod_registration

4

1 に答える 1

3

このクエリを試してください

PeriodRegistration.joins(:period).where("period_registrations.created_at >= ?", 30.days.ago.to_date).group("periods.product_id").count

これにより、各product_idに含まれるオブジェクトの数のハッシュが返されます。

于 2012-08-24T04:13:20.350 に答える