モデルを計算しようとしていますが、生成された SQL が機能していません。
私はこのモデルを持っています:
class Order < ActiveRecord::Base
attr_accessible :order_date
has_many :order_products, dependent: :destroy
class OrderProduct < ActiveRecord::Base
attr_accessible :amount
belongs_to :tariff
belongs_to :order_product_format
belongs_to :product
class OrderProductFormat < ActiveRecord::Base
attr_accessible :amount
class Tariff < ActiveRecord::Base
attr_accessible :price
そこで、注文コントローラーに関数を作成して、次のようにすべての注文の合計金額を取得しました
def self.global_total_amount
OrderProduct.joins(:order_product_format, :tariff).sum '((order_products.amount * order_product_formats.amount ) * tariffs.price)'
end
これは期待どおりに機能しますが、この合計金額を月ごとにグループ化したいので、このようなことをしようとしています
def self.month_total_amount
OrderProduct.includes(:order).joins(:order_product_format, :tariff, :order).group('"order"."order_date"').sum('((order_products.amount * order_product_formats.amount ) * tariffs.price)')
end
そして、次のエラーが表示されます。
SELECT SUM(((order_products.amount * order_product_formats.amount ) * tariffs.price)) AS sum_order_products_amount_all_order_product_formats_amount_all_, "order"."order_date" AS order_order_date FROM "order_products" INNER JOIN "order_product_formats" ON "order_product_formats"."id" = "order_products"."order_product_format_id" INNER JOIN "tariffs" ON "tariffs"."id" = "order_products"."tariff_id" INNER JOIN "orders" ON "orders"."id" = "order_products"."order_id" GROUP BY "order"."order_date"
ActiveRecord::StatementInvalid: PG::Error: ERROR: missing FROM-clause entry for table "order"
LINE 1: ...cts_amount_all_order_product_formats_amount_all_, "order"."o...
私は何を間違っていますか?これを行うためのより良いアプローチはありますか? 事前にどうもありがとうございました!