Подтвердить что ты не робот

Ruby on Rails: метод глобального помощника для всех контроллеров

Как настроить метод, который я хочу получить со всех контроллеров?

Придерживание метода в application_helper просто делает его доступным для представлений

4b9b3361

Ответ 1

Вы можете include ApplicationHelper в своих контроллерах (или базовом ApplicationController), чтобы сделать вспомогательные методы доступными.

Вы также можете включить следующую строку в свой ApplicationController, чтобы включить все помощники:

helper :all

Ответ 2

Вы можете добавить метод к ApplicationController. Все остальные подклассы контроллеров ApplicationController, поэтому смогут вызвать метод.

Вы хотите сделать метод protected так, чтобы он был видимым только для подклассов и недоступен как действие, доступное в Интернете.

Ответ 3

Вставьте его в lib. Помощники предназначены для использования в представлениях; если у вас есть библиотеки, специфичные для приложений (и под "библиотеками" я подразумеваю любой код, который использует ваше приложение, а "конкретным приложением" - все, что не принадлежит vendor), lib - это место, куда нужно идти.

Ответ 5

В рельсах 3 вы можете использовать: объект view_context в вашем контроллере для доступа к вспомогательным методам доступа. Например,

class ApplicationController < ActionController::Base
   def some_method
     view_context.some_view_helper_method
   end
end

module ApplicationHelper
  def some_view_helper_method
  end
end

Проверьте это: http://wowkhmer.com/2011/09/09/use-view-helper-methods-in-rails-3-controller/