- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (0)
- 3.1.0 (35)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (0)
- 4.1.8 (0)
- 4.2.1 (3)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (1)
- 6.0.0 (-38)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
A resolver that loads files from the filesystem. It allows setting 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,}{+:variants,}{.:handlers,}")
This one allows you to keep files with different formats in separate 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,}{+:variants,}{.:handlers,}")
If you don’t specify a 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,}{+:variants,}{.:handlers,}" )
Pattern format and variables
Pattern has to be a valid glob string, and it allows you to use the following variables:
-
:prefix - usually the controller path
-
:action - name of the action
-
:locale - possible locale versions
-
:formats - possible request formats (for example html, json, xml…)
-
:variants - possible request variants (for example phone, tablet…)
-
:handlers - possible handlers (for example erb, haml, builder…)