Spec-Zone.ru › Ruby on Rails 4.1

класс ActionView::FileSystemResolver

Родитель:
ActionView::PathResolver

Резолвер, загружающий файлы из файловой системы. Он позволяет задавать собственный шаблон разрешения. Такой шаблон может быть строкой шаблона совпадения, поддерживаемой некоторыми переменными.

Примеры

Шаблон по умолчанию загружает представления так же, как и предыдущие версии Rails, например, когда вы ищете `users/new`, он сгенерирует шаблон поиска: `users/new{.{en},}{.{html,js},}{.{erb,haml},}`

FileSystemResolver.new("/path/to/views", ":prefix/:action{.:locale,}{.:formats,}{.:handlers,}")

Этот шаблон позволяет хранить файлы с разными форматами в отдельных подкаталогах, например, `users/new.html` будет загружен из `users/html/new.erb` или `users/new.html.erb`, `users/new.js` из `users/js/new.erb` или `users/new.js.erb` и т.д.

FileSystemResolver.new("/path/to/views", ":prefix/{:formats/,}:action{.:locale,}{.:formats,}{.:handlers,}")

Если вы не укажете шаблон, будет использован шаблон по умолчанию.

Для использования любого из настраиваемых резолверов выше в приложении Rails, вам нужно просто настроить ActionController::Base.view_paths в файле инициализации, например:

ActionController::Base.view_paths = FileSystemResolver.new(
  Rails.root.join("app/views"),
  ":prefix{/:locale}/:action{.:formats,}{.:handlers,}"
)

Формат шаблона и переменные

Шаблон должен быть корректной строкой шаблона совпадения, и он позволяет использовать следующие переменные:

  • :prefix - обычно путь к контроллеру

  • :action - имя действия

  • :locale - возможные версии локалей

  • :formats - возможные форматы запроса (например, html, json, xml…)

  • :handlers - возможные обработчики (например, erb, haml, builder…)

Публичные методы класса

new(path, pattern=nil) Показать исходный код
Вызывает метод родительского класса
# File actionview/lib/action_view/template/resolver.rb, line 322
def initialize(path, pattern=nil)
  raise ArgumentError, "path already is a Resolver class" if path.is_a?(Resolver)
  super(pattern)
  @path = File.expand_path(path)
end

Публичные методы экземпляра

==(resolver)
Псевдоним для: eql?
eql?(resolver) Показать исходный код
# File actionview/lib/action_view/template/resolver.rb, line 333
def eql?(resolver)
  self.class.equal?(resolver.class) && to_path == resolver.to_path
end
Также псевдоним для: ==
to_path()
Псевдоним для: to_s
to_s() Показать исходный код
# File actionview/lib/action_view/template/resolver.rb, line 328
def to_s
  @path.to_s
end
Также псевдоним для: to_path

© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API