aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/routing_url_for.rb
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2014-11-23 13:53:01 -0800
committerXavier Noria <fxn@hashref.com>2014-11-24 14:33:50 -0800
commit9685080a7677abfa5d288a81c3e078368c6bb67c (patch)
tree09b3fe1061211ef557cede731794a4bd0ccfcf9e /actionview/lib/action_view/routing_url_for.rb
parentcdd90f39d796986dabf1678b3277b230dbe18961 (diff)
downloadrails-9685080a7677abfa5d288a81c3e078368c6bb67c.tar.gz
rails-9685080a7677abfa5d288a81c3e078368c6bb67c.tar.bz2
rails-9685080a7677abfa5d288a81c3e078368c6bb67c.zip
let mailer templates generate URLs by default [Xavier Noria, Richard Schneeman]
Diffstat (limited to 'actionview/lib/action_view/routing_url_for.rb')
-rw-r--r--actionview/lib/action_view/routing_url_for.rb33
1 files changed, 25 insertions, 8 deletions
diff --git a/actionview/lib/action_view/routing_url_for.rb b/actionview/lib/action_view/routing_url_for.rb
index 75febb8652..f281333a41 100644
--- a/actionview/lib/action_view/routing_url_for.rb
+++ b/actionview/lib/action_view/routing_url_for.rb
@@ -80,21 +80,38 @@ module ActionView
when String
options
when nil
- super({:only_path => true})
+ super(only_path: _generate_paths_by_default)
when Hash
options = options.symbolize_keys
- options[:only_path] = options[:host].nil? unless options.key?(:only_path)
+ unless options.key?(:only_path)
+ if options[:host].nil?
+ options[:only_path] = _generate_paths_by_default
+ else
+ options[:only_path] = false
+ end
+ end
+
super(options)
when :back
_back_url
- when Symbol
- ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder.path.handle_string_call self, options
when Array
- polymorphic_path(options, options.extract_options!)
- when Class
- ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder.path.handle_class_call self, options
+ if _generate_paths_by_default
+ polymorphic_path(options, options.extract_options!)
+ else
+ polymorphic_url(options, options.extract_options!)
+ end
else
- ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder.path.handle_model_call self, options
+ method = _generate_paths_by_default ? :path : :url
+ builder = ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder.send(method)
+
+ case options
+ when Symbol
+ builder.handle_string_call(self, options)
+ when Class
+ builder.handle_class_call(self, options)
+ else
+ builder.handle_model_call(self, options)
+ end
end
end