method

define_url_helper

Importance_0
v2.3.8 - Show latest stable - 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

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

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
Register or log in to add new notes.