Конфигурируемая модель Rails сталкивается с ActiveSupport::Configurable::Configuration:Class

У меня есть 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 ответ

Решение

Вы должны префикс это

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

Обратите внимание на :: перед именем класса. Они заставляют переводчика использовать Configuration класс в главном пространстве имен, а не один в ActiveSupport Пространство имен.

Другие вопросы по тегам