diff options
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_controller/routing.rb | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/routing.rb b/actionpack/lib/action_controller/routing.rb index 654727020a..2565a6dc3c 100644 --- a/actionpack/lib/action_controller/routing.rb +++ b/actionpack/lib/action_controller/routing.rb @@ -1160,10 +1160,17 @@ module ActionController # instead of # # foo_url(:bar => bar, :baz => baz, :bang => bang) - args.zip(#{segment_keys.inspect}).inject({}) do |h, (v, k)| + # + # Also allow options hash, so you can do + # + # foo_url(bar, baz, bang, :sort_by => 'baz') + # + options = args.last.is_a?(Hash) ? args.pop : {} + args = args.zip(#{segment_keys.inspect}).inject({}) do |h, (v, k)| h[k] = v h end + options.merge(args) end url_for(#{hash_access_method}(opts)) |