Ruby on Rails: метод Global Helper для всех контроллеров - PullRequest
19 голосов
/ 17 июня 2010

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

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

Ответы [ 5 ]

37 голосов
/ 17 июня 2010

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

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

17 голосов
/ 17 июня 2010

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

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

helper :all
7 голосов
/ 17 июня 2010

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

1 голос
/ 06 октября 2011

Вот очень хороший пример

http://railscasts.com/episodes/64-custom-helper-modules

0 голосов
/ 06 марта 2013

В rails 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...