【问题标题】:Rails Configurable Model collides with ActiveSupport::Configurable::Configuration:ClassRails 可配置模型与 ActiveSupport::Configurable::Configuration:Class 冲突
【发布时间】:2015-01-21 21:21:20
【问题描述】:

我有一个Configurable 模型:

# /models/configuration.rb
class Configuration < ActiveRecord::Base
end

当我在 pages_controller 中引用 Configurable 时,它工作正常:

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

提前致谢!

【问题讨论】:

    标签: ruby-on-rails model activesupport


    【解决方案1】:

    你需要添加前缀

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

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

    【讨论】:

    • 这对我有用,我会在计时器结束时将其标记为正确。我很好奇:: 之前是否暗示了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多