class ActionDispatch::Routing::RouteSet::NamedRouteCollection
def define_url_helper(route, name, kind, options)
foo_url(bar, baz, bang, :sort_by => 'baz')
Also allow options hash, so you can do:
foo_url(:bar => bar, :baz => baz, :bang => bang)
Instead of:
foo_url(bar, baz, bang)
with corresponding dynamic segments, so you can do:
Create a url helper allowing ordered parameters to be associated
def define_url_helper(route, name, kind, options) selector = url_helper_name(name, kind) hash_access_method = hash_access_name(name, kind) @module.module_eval <<-END_EVAL, __FILE__, __LINE__ + 1 def #{selector}(*args) options = #{hash_access_method}(args.extract_options!) if args.any? options[:_positional_args] = args options[:_positional_keys] = #{route.segment_keys.inspect} end url_for(options) end END_EVAL helpers << selector end