How Rails selects which view to render
This is exactly how rails does that:
- [action name]
- The name of the current action. *show* for /posts/1, *index* for /posts etc.
- [mime type]
- *html* by default. *js* for /posts.js, *xml* for /posts/1.xml etc. Optional. Leave this out, and rails uses the template for all mime types of that action.
- [template type]
- Which template engine Rails should use. Chose from *erb*, *builder*, *rjs* and so on.
Some examples of resource paths and the respective template names:
Template type does not have to match mime type
Template types and mime types does not have to match, though, as they do in the example above. *index.html.builder*, *show.xml.rjs* and *update.js.erb* are all valid template names. It means that you can use erb to create XML and builder to create HTML. Your choice.
Optional mime type
The mime type is also optional. The template *index.erb* will be rendered for all mime types.
Questions or comments?