Приложение My Rails 3.1 полностью реализовано в пространстве имен. Когда я вызываю представления, это пространство имен не включается, поэтому мне приходится каждый раз вводить полное имя каждого класса. Я думаю, это ошибка или, по крайней мере, отсутствующая функция. Как я могу автоматически включить свое пространство имен Aef :: Newman в каждый контекст представления, чтобы мне не приходилось каждый раз вводить полное имя?
Обратите внимание, что следующая инструкция внутри шаблона представления HAML не работает, поскольку метод include не найден:
- include Aef::Newman
Оба компонента этого пространства имен имеют тип Module. Например, мои контроллеры расположены в app / controllers / aef / newman, а контроллер приложения выглядит следующим образом:
module Aef
module Newman
class ApplicationController < ActionController::Base
protect_from_forgery
end
end
end
Существует контроллер с именем HandledAddressesController, который выглядит следующим образом:
module Aef
module Newman
class HandledAddressesController < ApplicationController
def index
@handled_addresses = HandledAddress.all
end
end
end
end
Обратите внимание, что даже модель HandledAddress фактически называется Aef :: Newman :: HandledAddress и находится в app / models / aef / newman / handled_address.rb.
Мой route.rb выглядит так:
resources :handled_addresses, controller: 'aef/newman/handled_addresses, only: :index
Путь к шаблону представления: app / views / aef / newman / handled_addresses / index.haml.haml