0

一連のレコードを返すメソッドを実装したモデルがあります。それらをArelで参照することは可能ですか?

class A < ActiveRecord::Base
  #associations here

  def self.mymeth
    #return a set of records based on a query
    B.select(col).joins(:cs).where(some_condition)
  end

end

class B < ActiveRecord::Base
  #associations here
end

class C < ActiveRecord::Base 
  #associations here    
end

mymeth を次のように参照するにはどうすればよいですか

  A.joins(:mymeth).where(condition).count
4

1 に答える 1

1

スコープを探していませんか?

class A < ActiveRecord::Base

  scope :myscope, lambda { joins(:b).where(column: true) }
end

その後、次のようにスコープを呼び出すことができます:

A.mymeth.where(col: false)

スコープに追加したすべての SQL 条件は、呼び出されたときにクエリに自動的に追加されます。

于 2013-07-22T13:58:50.023 に答える