将范围从模型移动到Rails 4中的某个模块

时间:2014-08-22 10:25:44

标签: ruby-on-rails

在一些模型中使用了一些范围,我想在模块中移动以便混合它。可能吗?我使用Rails 4,并尝试使用以下代码:

module ExistingScoping
    scope :existing, -> { ... }
end

但我有错误:

undefined method `scope' for ExistingScoping:Module

我该如何解决?提前致谢。

1 个答案:

答案 0 :(得分:2)

您可能想查找ActiveRecord::Concerns

-

#app/models/concerns/existing_scoping.rb
module ExistingScoping
   extend ActiveSupport::Concern

   included do
     scope :existing, -> { ... }
   end
end

#app/models/model.rb
Class Model < ActiveRecord::Base
   include ExistingScoping
end