Rails可配置模型与ActiveSupport :: Configurable :: Configuration:Class冲突

时间:2015-01-21 21:21:21

标签: ruby-on-rails model activesupport

我有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模型?

提前致谢!

1 个答案:

答案 0 :(得分:6)

你需要加前缀

::Configuration.where(name: 'menu')

注意班级名称前的::。它们强制解释器在主命名空间中使用Configuration类,而不是ActiveSupport命名空间中的一个。