aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-12 11:58:12 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-12 15:21:03 -0700
commit9df60693d77813b362fb528fc62381ac8f1eec12 (patch)
tree17da48684defa30b284adb0d2ebb05e800dabc53 /actionpack
parent2d73a73d2f678945d57d95eae678d641ca9ea940 (diff)
downloadrails-9df60693d77813b362fb528fc62381ac8f1eec12.tar.gz
rails-9df60693d77813b362fb528fc62381ac8f1eec12.tar.bz2
rails-9df60693d77813b362fb528fc62381ac8f1eec12.zip
reduce conditionals in url_for
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb9
1 files changed, 6 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index d61b430f68..cc31c4306f 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -655,7 +655,7 @@ module ActionDispatch
options = default_url_options.merge(options || {})
user, password = extract_authentication(options)
- recall = options.delete(:_recall)
+ recall = options.delete(:_recall) { {} }
original_script_name = options.delete(:original_script_name).presence
script_name = options.delete(:script_name).presence || _generate_prefix(options)
@@ -668,8 +668,11 @@ module ActionDispatch
RESERVED_OPTIONS.each { |ro| path_options.delete ro }
path_options = yield(path_options) if block_given?
- path, params = generate(path_options, recall || {})
- params.merge!(options[:params] || {})
+ path, params = generate(path_options, recall)
+
+ if options.key? :params
+ params.merge! options[:params]
+ end
ActionDispatch::Http::URL.url_for(options.merge!({
:path => path,