aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/4_1_release_notes.md
diff options
context:
space:
mode:
authorŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-12-03 13:23:41 +0100
committerŁukasz Strzałkowski <lukasz.strzalkowski@gmail.com>2013-12-04 00:13:16 +0100
commiteb0402d512a1fb4e65a4d8d3dab3684e9f136b34 (patch)
treed20232cd9ea12691bb126e48855ed8ced15c6371 /guides/source/4_1_release_notes.md
parent2d3a6a0cb8df0360dd588a4d2fb260dd07cc9bcf (diff)
downloadrails-eb0402d512a1fb4e65a4d8d3dab3684e9f136b34.tar.gz
rails-eb0402d512a1fb4e65a4d8d3dab3684e9f136b34.tar.bz2
rails-eb0402d512a1fb4e65a4d8d3dab3684e9f136b34.zip
Add variants to release notes
Diffstat (limited to 'guides/source/4_1_release_notes.md')
-rw-r--r--guides/source/4_1_release_notes.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/guides/source/4_1_release_notes.md b/guides/source/4_1_release_notes.md
index de29b2e58e..0e3e2037ff 100644
--- a/guides/source/4_1_release_notes.md
+++ b/guides/source/4_1_release_notes.md
@@ -3,6 +3,7 @@ Ruby on Rails 4.1 Release Notes
Highlights in Rails 4.1:
+* Variants
* Action View extracted from Action Pack
These release notes cover only the major changes. To know about various bug
@@ -27,6 +28,38 @@ guide.
Major Features
--------------
+* Variants
+
+ We often want to render different html/json/xml templates for phones,
+ tablets, and desktop browsers. Variants make it easy.
+
+ The request variant is a specialization of the request format, like :tablet,
+ :phone, or :desktop.
+
+ You can set the variant in a before_action:
+
+ ```ruby
+ request.variant = :tablet if request.user_agent =~ /iPad/
+ ```
+
+ Respond to variants in the action just like you respond to formats:
+
+ ```ruby
+ respond_to do |format|
+ format.html do |html|
+ html.tablet # renders app/views/projects/show.html+tablet.erb
+ html.phone { extra_setup; render ... }
+ end
+ end
+ ```
+
+ Provide separate templates for each format and variant:
+
+ ```
+ app/views/projects/show.html.erb
+ app/views/projects/show.html+tablet.erb
+ app/views/projects/show.html+phone.erb
+ ```
Documentation
-------------