class FileSystemResolver
Ruby on Rails 3.1.12
Since v3.0.20A resolver that loads files from the filesystem. It allows to set your own resolving pattern. Such pattern can be a glob string supported by some variables.
Examples
Default pattern, loads views the same way as previous versions of rails, eg. when you’re looking for users/new it will produce query glob: ‘users/new{.{en},}{.{html,js},}{.{erb,haml},}`
FileSystemResolver.new("/path/to/views", ":prefix/:action{.:locale,}{.:formats,}{.:handlers,}")
This one allows you to keep files with different formats in seperated subdirectories, eg. users/new.html will be loaded from users/html/new.erb or users/new.html.erb, users/new.js from users/js/new.erb or users/new.js.erb, etc.
FileSystemResolver.new("/path/to/views", ":prefix/{:formats/,}:action{.:locale,}{.:formats,}{.:handlers,}")
If you don’t specify pattern then the default will be used.
In order to use any of the customized resolvers above in a Rails application, you just need to configure ActionController::Base.view_paths in an initializer, for example:
ActionController::Base.view_paths = FileSystemResolver.new( Rails.root.join("app/views"), ":prefix{/:locale}/:action{.:formats,}{.:handlers,}" )
Pattern format and variables
Pattern have to be a valid glob string, and it allows you to use the following variables:
-
:prefix- usualy the controller path -
:action- name of the action -
:locale- possible locale versions -
:formats- possible request formats (for example html, json, xml…) -
:handlers- possible handlers (for example erb, haml, builder…)