Помощники в движке Rails - PullRequest
       41

Помощники в движке Rails

8 голосов
/ 06 ноября 2011

Я работаю над рельсовым двигателем, и у меня проблема с помощниками.

Очевидно, это известная "проблема", но там не так много решений.Проблема в том, что у меня есть AuthenticationHelper, к которому я хочу получить глобальный доступ, но он не работает.

Я прочитал, что вы можете добавить несколько строк в ваш init.rb, но этокажется, не имеет никакого эффекта.

Есть идеи, как лучше всего сделать приложение доступным в движке?

РЕДАКТИРОВАТЬ: Исправлено - просто введите код (по ссылке) вengine.rb вместо.

Ответы [ 2 ]

10 голосов
/ 04 сентября 2012

Поместите этот код в engine.rb:

config.to_prepare do
  ApplicationController.helper(MyEngineHelper)
end
2 голосов
/ 15 февраля 2014

Чтобы получить доступ к основным помощникам приложения (ApplicationHelper) из представлений движка, я попытался включить это:

приложение / хелперы / your_engine / application_helper.rb

module YourEngine
  module ApplicationHelper
    include ActionView::Helpers::ApplicationHelper
  end
end

Это работает, но однажды, когда я перезапустил dev-сервер, он выдает мне uninitialized constant ActionView::Helpers::ApplicationHelper, но я не могу воспроизвести это исключение.

EDIT

удалил это include и сделал это:

lib / my_engine / engine.rb (внутри двигателя)

module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
    config.to_prepare do
      ApplicationController.helper(ActionView::Helpers::ApplicationHelper)
    end
  end
end
...