Ruby on rails 如何在ActiveRecord中从父级调用子模型作用域?

Ruby on rails 如何在ActiveRecord中从父级调用子模型作用域?,ruby-on-rails,activerecord,scope,Ruby On Rails,Activerecord,Scope,请帮助我找到在父范围内调用子范围的方法。我有没有办法做到这一点 场景如下: class Film < ActiveRecord::Base ... has_many :shows scope :active_shows, ->{ joins(:shows) } ... end class Show < ActiveRecord::Base ... belongs_to :film scope :active_for_now, ->

请帮助我找到在父范围内调用子范围的方法。我有没有办法做到这一点

场景如下:

class Film < ActiveRecord::Base
  ...
  has_many :shows
  scope :active_shows, ->{
    joins(:shows)
  }
  ...
end

class Show < ActiveRecord::Base
  ...
  belongs_to :film
  scope :active_for_now, ->{
   ...
  }
  ...
end
class-Film{
联接(:显示)
}
...
结束
类Show{
...
}
...
结束
从上面的示例中,我想知道如何从
active\u shows
为现在的\u调用scope
active\u<当我调用
Film时,code>show
表中有
start\u time
end\u time
字段。active\u shows
必须获取当前时间具有active show的所有影片


请帮助我,如果有任何解决方案,请纠正,如果我错了

对于作用域和关联名称,以及它们是否表示我没有看到的关系,我有点困惑,但要调用在
中定义的作用域,可以使用

class A{
连接(:bs).合并(B.bas)
}
...
结束
您可以单独设置:


您好,您能描述一下您试图解决的问题吗?@Bohdan我用更好的例子更新了这个问题,我想请您过目一下。它不应该是范围。声明另一个
有很多关联。不过我称之为
当前处于活动状态。谢谢你的建议,但我担心这对我的情况不起作用。有多个协会让我们做好一对多的关系。我要找的是:通过使用scope Show.active\u for\u现在我会得到所有当前活动的节目现在我希望达到的是当我调用scope Film.active\u shows时我想要得到所有当前活动的电影。这是一个非常令人困惑的名字。
class A < ActiveRecord::Base
  ...
  has_many :bs
  scope :abs, ->{
    joins(:bs).merge(B.bas)
  }
  ...
end
class Film < ActiveRecord::Base
  has_many :shows
  has_many :active_shows, class_name: 'Show', ->{ Show.active_for_now }
end
@films = Film.eager_load(:active_shows).find(params[:id])