そのため、メンバーには多くのサブスクリプションがあります。最後のサブスクリプション cancel_at が nil でない場合、メンバーはキャンセルされます。しかし、現在キャンセルされているサブスクリプションを持つすべてのメンバーを見つけるために、クエリを正しく機能させることができないようです。
私はメンバーモデルでこれをやっています
scope :canceled, includes(:subscriptions).
where('subscriptions.canceled_at IS NOT NULL')
ただし、以前にサブスクリプションをキャンセルしたユーザーにも返されます。制限などを使用する必要があります。次のように定義された関係があります
has_many :subscriptions, :order => "subscriptions.created_at DESC", :dependent => :destroy
だから私は.firstから離れて作業することができますが、そのロジックをそのようなクラススコープに適用する方法がわかりません。