Как я могу использовать помощник в разных видах - PullRequest
33 голосов
/ 20 мая 2011

В данный момент я использую cms на НПЗ.Я создал движок и несколько помощников в app/helpers/admin/.Теперь я хотел бы использовать эти помощники в моем представлении внешнего интерфейса (т.е. app/views/myapp/index).но я не могу ... неопределенная ошибка метода.Что мне нужно сделать, если не копировать все это в app/helpers/?помощник выглядит так

module Admin
    module myHelper
        def somefunc
        end
    end
end

, поэтому можно ли использовать somefunc вне модуля администратора?

Ответы [ 3 ]

57 голосов
/ 12 августа 2012

«Способ Rails» для включения помощника из нестандартного пути в представление заключается в использовании метода .helper в вашем контроллере.

class MyController < ApplicationController
    helper Admin::MyHelper
    ...
end

http://apidock.com/rails/AbstractController/Helpers/ClassMethods/helper

26 голосов
/ 20 мая 2011

В вашем application_helper.rb:

module ApplicationHelper
  include Admin::MyHelper
end

Это импортирует эти вспомогательные методы в ApplicationHelper, делая их доступными в ваших представлениях.Вы могли бы сделать это в любом из ваших помощников действительно.

1 голос
/ 20 мая 2011

Вы можете попытаться использовать полную ссылку на объект, например Admin::myHelper::somefunc, для вызова somefunc извне Admin модуля.

...