次のmysqlクエリがうまく機能しています。簡単な裏話です。これは、顧客を合計金額でリストします。
SELECT SUM(price) AS money_spent, co.customer_id, cu.first_name, cu.last_name, cu.email_primary
FROM customer_order AS co
JOIN customer AS cu ON (cu.customer_id = co.customer_id)
GROUP BY co.customer_id
ORDER BY money_spent DESC
これをスコープとサブクラスとして顧客モデルに移動しようとしましたが、両方の方法で失敗しました。私はレール(以前はクライアント側)に少し慣れていませんが、近いと思います。皆さんが私を正しい方向に向けてくれることを願っています。前もって感謝します!!!
def self.high_rollers
options = {
:select => "SUM(price) AS money_spent, co.customer_id, cu.first_name, cu.last_name, cu.email_primary",
:from => "customer_order AS co",
:joins => "customer AS cu ON (cu.customer_id = co.customer_id)",
:group_by => "co.customer_id",
:order => "money_spent DESC"
}
このコントローラーのインデックス アクションに次のコードを挿入すると機能しますが、適切なアプローチとは思えません。
@high_bidders = Customer.find_by_sql(<<-SQL
SELECT SUM(price) AS money_spent, co.customer_id, cu.first_name, cu.last_name, cu.email_primary
FROM customer_order AS co
JOIN customer AS cu ON (cu.customer_id = co.customer_id)
GROUP BY co.customer_id
ORDER BY money_spent DESC
SQL )