我正在尝试为要共享的模型创建一些通用范围,所以我创建了这个:
lib
|_ scopes
|_ scope.rb
|_ bars.rb
# lib/scopes/scope.rb
module Scope
end
# lib/scopes/bars.rb
module Scope
module Bars
def self.included(base)
base.class_eval{
scope :somescope, lambda{ where(:foo => :bar) }
}
end
end
end
现在当我把它放在一个模型中时:
include Scope::Bars
它抛出一个错误:Expected c:/sites/app_name/lib/scopes/bars.rb to define Bars
出于某种奇怪的原因,当我只使用 rails 控制台而不是 WEBrick 服务器进行测试时,不会发生这种情况。
如果我不使用子模型,它也可以完美地工作,比如:include Bars
会工作得很好。
有任何想法吗?