我有一个 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/