Конфигурируемая модель 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
Пространство имен.