where句の下にある関連モデルの数によってモデルのスコープを設定する必要があるプロジェクトに取り組んでいます。これは私が思いつくことができる最高のものです:
Subscription.where('message_cap > ?', TextMessage.where('created_at > ?', DateTime.now.beginning_of_month).where(subscription: subscription).count)
ただし、サブスクリプションが定義されていないため、機能しません。Railsクエリで、現在postgresにヒットしているモデルを参照できる方法はありますか? これが私が探しているSQLだと思います:
SELECT * FROM 'subscriptions' WHERE 'subscription.message_cap' > (SELECT COUNT(*) FROM 'text_messages' WHERE 'text_messages.subscription_id' = 'subscription.id' AND 'text_message.created_at > BEGINNINGOFMONTH')
これは私のアプリケーションのパフォーマンスにとって非常に重要な部分なので、できれば 1 つのクエリで実行する必要があります。
編集
ところで、上記の SQL クエリが有効かどうかはわかりません。私が探していたもののアイデアを伝えるためにそこに置いただけです。