Mysql 查找已取消订阅的成员
所以,会员有很多订阅。如果上次取消的订阅不是零,则成员将被取消。但我似乎无法让查询正常工作,无法找到所有当前订阅已取消的成员 我在会员模式中这样做Mysql 查找已取消订阅的成员,mysql,ruby-on-rails,activerecord,arel,Mysql,Ruby On Rails,Activerecord,Arel,所以,会员有很多订阅。如果上次取消的订阅不是零,则成员将被取消。但我似乎无法让查询正常工作,无法找到所有当前订阅已取消的成员 我在会员模式中这样做 scope :canceled, includes(:subscriptions). where('subscriptions.canceled_at IS NOT NULL') 但它也会为以前取消订阅的用户返回。我需要使用limit或者类似的东西,我把关系定义为 has_many :subscriptions, :order =>
scope :canceled, includes(:subscriptions).
where('subscriptions.canceled_at IS NOT NULL')
但它也会为以前取消订阅的用户返回。我需要使用limit或者类似的东西,我把关系定义为
has_many :subscriptions, :order => "subscriptions.created_at DESC", :dependent => :destroy
所以我可以先处理一下。但是不确定如何将这种逻辑应用到类的作用域中 添加另一个关联怎么样
Class Member < ActiveRecord::Base
has_one :last_subscription, :class_name => "Subscription", :foreign_key => "member_id", :order => "created_at desc"
仍然不完全清楚,是否要查找其订阅当前已取消的用户?目前取消的订阅与过去的订阅有什么区别?其是否为日期范围?最新订阅记录状态为Cancelled的用户,表示为Cancelled\u为null或带有datetime对象,用于从
成员中选择成员
*,按成员排序。姓氏ASC,成员。姓氏ASC限制1,因此它仅返回1个成员尝试使用成员调用它。包括(:最后一个下标).all.执行的查询没有意义,不确定它为什么不调用subscriptionOK,这样做了,然后运行:Member.cancelled.all.each do | m | pm.full|u name,除非m.subscriptions.first.cancelled?;end,然后我返回了几个成员,理论上我不应该这样做。我正在我的机器上测试它,我得到了一个不同的查询,m=Member.first是什么m.last_subscription给了你什么?我认为不可能急于加载最新的对象,你必须执行原始sql,检查这个过去的答案
scope :canceled, includes(:last_subscription).where('subscriptions.canceled_at IS NOT NULL')