Flowdock
method

define_url_helper

Importance_0
v2.1.0 - Show latest stable - 0 notes - Class: ActionController::Routing::RouteSet::NamedRouteCollection
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 151
          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')
            #
            @module.module_eval "def \#{selector}(*args)\n\#{generate_optimisation_block(route, kind)}\n\nopts = if args.empty? || Hash === args.first\nargs.first || {}\nelse\noptions = args.extract_options!\nargs = args.zip(\#{route.segment_keys.inspect}).inject({}) do |h, (v, k)|\nh[k] = v\nh\nend\noptions.merge(args)\nend\n\nurl_for(\#{hash_access_method}(opts))\nend\nprotected :\#{selector}\n" # We use module_eval to avoid leaks
            helpers << selector
          end
Register or log in to add new notes.