环境:rails 4.2,ruby 2.2.0
我试图添加类似于find_each的函数,但是按ID降序排列。
我想这样使用它。
Person.where('age > 30').find_each_desc.each do |person|
end
我将方法添加到ActiveRecord :: Batches,效果很好。
# file config/initializers/active_record.rb
module ActiveRecord
module Batches
def find_each_desc(options = {})
# do something
end
end
end
但是如果转到anthoer模块,请使用include添加方法,它将无法正常工作。
# file util/find_in_batches_with_order.rb
module Util
module FindInBatchesWithOrder
def find_each_desc(options = {})
# do something
end
end
end
# file config/initializers/active_record.rb
module ActiveRecord
module Batches
include Util::FindInBatchesWithOrder
end
end
# can get find_each_desc method
$ ActiveRecord::Batches.instance_methods
=> [:find_each, :find_in_batches, :find_each_desc]
ActiveRecord :: Relation包含ActiveRecord :: Batches,因此可以在ActiveRecord :: Relation实例方法中找到find_each_desc方法,但不能。
我应该怎么办?