модуль ActionController::Helpers::ClassMethods
Общедоступные методы экземпляров
# File actionpack/lib/action_controller/metal/helpers.rb, line 101
def all_helpers_from_path(path)
helpers = Array(path).flat_map do |_path|
names = Dir["#{_path}/**/*_helper.rb"].map { |file| file[_path.to_s.size + 1..-"_helper.rb".size - 1] }
names.sort!
end
helpers.uniq!
helpers
end Возвращает список имён помощников в заданном пути.
ActionController::Base.all_helpers_from_path 'app/helpers' # => ["application", "chart", "rubygems"]
# File actionpack/lib/action_controller/metal/helpers.rb, line 71
def helper_attr(*attrs)
attrs.flatten.each { |attr| helper_method(attr, "#{attr}=") }
end Объявляет обработчики доступа к атрибутам контроллера. Например, следующее добавляет новые name и name= методы экземпляра в контроллер и делает их доступными для представления:
attr_accessor :name helper_attr :name
Параметры
-
attrs- Имена атрибутов, которые необходимо преобразовать в помощники.
# File actionpack/lib/action_controller/metal/helpers.rb, line 76
def helpers
@helper_proxy ||= begin
proxy = ActionView::Base.empty
proxy.config = config.inheritable_copy
proxy.extend(_helpers)
end
end Предоставляет прокси для доступа к методам помощников извне представления.
# File actionpack/lib/action_controller/metal/helpers.rb, line 92 def modules_for_helpers(args) args += all_application_helpers if args.delete(:all) super(args) end
Переопределите #modules_for_helpers, чтобы принять аргумент :all, который загружает все помощники в helpers_path.
Параметры
-
args- Список помощников
Возвращает
-
array- Нормализованный список модулей для предоставленного списка помощников.
Вызывает метод суперкласса
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.