私は3つのキーワードを持つサービスモデルを持っています。そして、私は顧客に提供されたサービスの数を数える販売モデルを持っています。私は統計レポートを作成しようとしており、何がサービスによって販売されたサービスの数を得るための最良の方法であるか尋ねたいと思っていますか?文字列を一致させてレコード数を取得する方法
例えば、私は10回販売されたサービスA、20回販売されたサービスBを持っています。これらの値を簡単かつプログラム的に取得するにはどうすればよいですか?
個別に行って、サービスの各インスタンスの販売モデルを検索する必要はありません。
どうすればいいですか?
class Sale < ApplicationRecord
has_many :sale_services
has_many :services, :through => :sale_services
end
class Service < ApplicationRecord
has_many :sale_services
has_many :sales, through: :sale_services
end
class SaleService < ApplicationRecord
belongs_to :sale, optional: true
belongs_to :service, optional: true
end
各サービスには価格があり、各販売は、その特定の販売で販売されたサービスの数に応じてtotal_price属性を有する。
サービスと販売の関係を分かち合うことができますか?そのサービスには売り上げはありますか?しかし、あなたが2つのモデルの間の関係を分かち合うことができれば素晴らしいことでしょう。 –
サービスと販売との間にhas_manyアソシエーションがある場合は、これを試してください:Service.includes(:sales).select( "services.name、count(sales.id)as sold_count") – power
はい、申し訳ありません。関係を前に!そのmany_to_many関係! –