method
url_for
v3.0.9 -
Show latest stable
-
0 notes -
Class: ActionDispatch::Routing::RouteSet
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (0)
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (38)
- 4.1.8 (0)
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
url_for(options)
public
Hide source
# File actionpack/lib/action_dispatch/routing/route_set.rb, line 459 def url_for(options) finalize! options = (options || {}).reverse_merge!(default_url_options) handle_positional_args(options) rewritten_url = "" path_segments = options.delete(:_path_segments) unless options[:only_path] rewritten_url << (options[:protocol] || "http") rewritten_url << "://" unless rewritten_url.match("://") rewritten_url << rewrite_authentication(options) raise "Missing host to link to! Please provide :host parameter or set default_url_options[:host]" unless options[:host] rewritten_url << options[:host] rewritten_url << ":#{options.delete(:port)}" if options.key?(:port) end path_options = options.except(*RESERVED_OPTIONS) path_options = yield(path_options) if block_given? path = generate(path_options, path_segments || {}) # ROUTES TODO: This can be called directly, so script_name should probably be set in the routes rewritten_url << (options[:trailing_slash] ? path.sub(/\?|\z/) { "/" + $& } : path) rewritten_url << "##{Rack::Mount::Utils.escape_uri(options[:anchor].to_param.to_s)}" if options[:anchor] rewritten_url end