我的模型A,B和C需要相同的范围。
我发现这个question提到了创建模块并包含它:
require 'active_support/concern'
module Scopes
extend ActiveSupport::Concern
included do
scope :disabled, where(:disabled => true)
end
module ClassMethods
...
end
end
但是它没有解释放在哪里以及如何包括。
我尝试将上面的代码放在config/my_scopes.rb
中,并将其包含在我的application_controller.rb
中,如下所示:
class ApplicationController < ActionController::Base
include Scopes
...
end
我有路由错误这样说:
uninitialized constant ApplicationController::Scopes
我对Rails很新,所以我不确定是什么导致它。有什么帮助吗?
由于
答案 0 :(得分:3)
您应该在Rails 3中要求require 'concerns/scopes.rb'
这样的文件。
此外,您的范围是ActiveRecord
,并且您将其包含在控制器中,我认为这不起作用。你应该这样做:
module ActiveRecord
module Base
include Scopes
end
end
我不确定你应该把这个文件放在哪里(并且它是否有效:))。
或者也许:
class ActiveRecord
include Scopes
end
并在ApplicationController中需要此文件