Rails范围与另一个模型范围连接?

kan*_*san 2 ruby ruby-on-rails

在一种情况下,我需要加入4个范围中的4个范围,3个是用模型(A)编写的,另一个是模型(B),如何加入这些范围?

这两个模型有HABTM关系

Model A
  scope 1
  scope 2
  scope 3

  total_scope= scope1.scope2.scope3.scope4
end

Model B
  scope 4
end
Run Code Online (Sandbox Code Playgroud)

Pet*_*own 14

您的问题措辞不是很好,但我认为您所询问的内容与Active Record的合并功能有关:

class ModelA
  scope :total_scope, -> { scope1.scope2.scope3.joins(:modelb).merge(ModelB.scope4)
end
Run Code Online (Sandbox Code Playgroud)