0
私のレールアプリケーションには次のスキーマがあります。1つの結合モデルが含まれていて、アクティブなレコードを使用していないすべてのレコードを検索します。
class Campaign < ApplicationRecord
has_many :businesses
has_many :clients, through: :businesses
end
class Business < ApplicationRecord
has_many :clients
belongs_to :campaign
end
class Client < ApplicationRecord
has_many :events
belongs_to :business
end
class Event < ApplicationRecord
belongs_to :client
enum category: {
:processed,
:delivered,
:opened
}
end
私はこれを行うための私の素朴な方法でした開かれたカテゴリ
ない処理され、配信イベントカテゴリを持っているキャンペーン内のすべてのクライアントを見つける方法が必要になりますが:
c = Campaign.first
c.clients.joins(:events).where('events.category' => [0, 1]).where.not('events.category' => [2])
しかし、これは動作しません。
このクエリは非常に大きなテーブルで実行されるので、熱心な読み込みはオプションではありません。
感謝を見ることができますが、それはまだここに助けにはなりませんhere
見つけることができます。私はすでにクエリで生のenum値を使用していますが、問題は同じです。 – KJF
ここにエラーログを投稿できますか – Mayank