Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找已取消订阅的成员_Mysql_Ruby On Rails_Activerecord_Arel - Fatal编程技术网

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')