method
define_url_helper
Ruby on Rails latest stable (v7.1.3.2)
-
0 notes -
Class: ActionController::Routing::RouteSet::NamedRouteCollection
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0 (0)
- 2.2.1 (0)
- 2.3.8 (0)
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 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?
define_url_helper(route, name, kind, options)
private
Hide source
# File actionpack/lib/action_controller/routing/route_set.rb, line 157 def define_url_helper(route, name, kind, options) selector = url_helper_name(name, kind) # The segment keys used for positional paramters hash_access_method = hash_access_name(name, kind) # allow ordered parameters to be associated with corresponding # dynamic segments, so you can do # # foo_url(bar, baz, bang) # # instead of # # foo_url(:bar => bar, :baz => baz, :bang => bang) # # Also allow options hash, so you can do # # foo_url(bar, baz, bang, :sort_by => 'baz') # named_helper_module_eval "def \#{selector}(*args) # def users_url(*args)\nargs.compact! #\n#\n\#{generate_optimisation_block(route, kind)} # \#{generate_optimisation_block(route, kind)}\n#\nopts = if args.empty? || Hash === args.first # opts = if args.empty? || Hash === args.first\nargs.first || {} # args.first || {}\nelse # else\noptions = args.extract_options! # options = args.extract_options!\nargs = args.zip(\#{route.segment_keys.inspect}).inject({}) do |h, (v, k)| # args = args.zip([]).inject({}) do |h, (v, k)|\nh[k] = v # h[k] = v\nh # h\nend # end\noptions.merge(args) # options.merge(args)\nend # end\n#\nurl_for(\#{hash_access_method}(opts)) # url_for(hash_for_users_url(opts))\n#\nend # end\n#Add an alias to support the now deprecated formatted_* URL. # #Add an alias to support the now deprecated formatted_* URL.\ndef formatted_\#{selector}(*args) # def formatted_users_url(*args)\nActiveSupport::Deprecation.warn( # ActiveSupport::Deprecation.warn(\n\"formatted_\#{selector}() has been deprecated. \" + # \"formatted_users_url() has been deprecated. \" +\n\"Please pass format to the standard \" + # \"Please pass format to the standard \" +\n\"\#{selector} method instead.\", caller) # \"users_url method instead.\", caller)\n\#{selector}(*args) # users_url(*args)\nend # end\nprotected :\#{selector} # protected :users_url\n" # We use module_eval to avoid leaks helpers << selector end