aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/http
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2014-02-13 17:24:22 +0100
committerDavid Heinemeier Hansson <david@loudthinking.com>2014-02-13 17:24:22 +0100
commitf2dfa83fac5e892335d2bceaa6dfe344515fee26 (patch)
tree8e0f89eefe15f5bff61e111cbbc718114d9a0820 /actionpack/lib/action_dispatch/http
parentea3af7ee14217470b019225a03cccced1120f211 (diff)
parentf9b6b865e60ea770cc34e9946f6df1604f20dd27 (diff)
downloadrails-f2dfa83fac5e892335d2bceaa6dfe344515fee26.tar.gz
rails-f2dfa83fac5e892335d2bceaa6dfe344515fee26.tar.bz2
rails-f2dfa83fac5e892335d2bceaa6dfe344515fee26.zip
Merge pull request #14043 from strzalek/variants-negotiation
Variant negotiation
Diffstat (limited to 'actionpack/lib/action_dispatch/http')
-rw-r--r--actionpack/lib/action_dispatch/http/mime_negotiation.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/http/mime_negotiation.rb b/actionpack/lib/action_dispatch/http/mime_negotiation.rb
index c33ba201e1..b75d7ffe9d 100644
--- a/actionpack/lib/action_dispatch/http/mime_negotiation.rb
+++ b/actionpack/lib/action_dispatch/http/mime_negotiation.rb
@@ -68,10 +68,12 @@ module ActionDispatch
# Sets the \variant for template.
def variant=(variant)
- if variant.is_a? Symbol
+ if variant.is_a?(Symbol)
+ @variant = [variant]
+ elsif variant.is_a?(Array)
@variant = variant
else
- raise ArgumentError, "request.variant must be set to a Symbol, not a #{variant.class}. " \
+ raise ArgumentError, "request.variant must be set to a Symbol or Array, not a #{variant.class}. " \
"For security reasons, never directly set the variant to a user-provided value, " \
"like params[:variant].to_sym. Check user-provided value against a whitelist first, " \
"then set the variant: request.variant = :tablet if params[:variant] == 'tablet'"