我有Configurable
型号:
# /models/configuration.rb
class Configuration < ActiveRecord::Base
end
当我在Configurable
中引用pages_controller
时,它可以正常运行:
class PagesController < ApplicationController
def search
@description = Configuration.find_by_name('description') || nil
end
end
但是当我在application_controller.rb
中引用它时,就像这样
class ApplicationController < ActionController::Base
def get_menu
@menu = Configuration.where(name: 'menu') || nil
end
end
我收到错误undefined method 'where' for ActiveSupport::Configurable::Configuration:Class
。如何阻止我的Configuration
模型和ActiveSupport::Configurable::Configuration:Class
发生这样的碰撞,或直接引用我的Configuration
模型?
提前致谢!
答案 0 :(得分:6)
你需要加前缀
::Configuration.where(name: 'menu')
注意班级名称前的::
。它们强制解释器在主命名空间中使用Configuration
类,而不是ActiveSupport
命名空间中的一个。