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

提前致谢!

最佳答案

你需要加前缀

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

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

关于ruby-on-rails - Rails 可配置模型与 ActiveSupport::Configurable::Configuration:Class 发生冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28077055/

10-13 07:16