diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2014-12-13 19:03:30 -0200 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2014-12-13 19:03:30 -0200 |
commit | ef99d4cd3ecc58a8c1484740b2fb5447dbda23ab (patch) | |
tree | 7c706dd5785c4101614a29fb7808df1294551079 | |
parent | 390f09efa3850d735bb9426a4a41a81f8ea400d2 (diff) | |
parent | a842c5c12d4c1091c4e065cbdbc3adb58ce55bc9 (diff) | |
download | rails-ef99d4cd3ecc58a8c1484740b2fb5447dbda23ab.tar.gz rails-ef99d4cd3ecc58a8c1484740b2fb5447dbda23ab.tar.bz2 rails-ef99d4cd3ecc58a8c1484740b2fb5447dbda23ab.zip |
Merge pull request #18022 from agrobbin/url-helpers-optional-scopes
Allow URL helpers to work with optional scopes
-rw-r--r-- | actionpack/CHANGELOG.md | 4 | ||||
-rw-r--r-- | actionpack/lib/action_dispatch/routing/route_set.rb | 2 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing/route_set_test.rb | 12 |
3 files changed, 17 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index b68f2a28fe..3b02994459 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,3 +1,7 @@ +* Fixed usage of optional scopes in URL helpers. + + *Alex Robbin* + * Fixed handling of positional url helper arguments when `format: false`. Fixes #17819. diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb index 34cd06fd58..d7693bdcee 100644 --- a/actionpack/lib/action_dispatch/routing/route_set.rb +++ b/actionpack/lib/action_dispatch/routing/route_set.rb @@ -293,7 +293,7 @@ module ActionDispatch path_params -= result.keys end path_params.each { |param| - result[param] = inner_options[param] || args.shift + result[param] = inner_options.fetch(param) { args.shift } } end diff --git a/actionpack/test/dispatch/routing/route_set_test.rb b/actionpack/test/dispatch/routing/route_set_test.rb index 5a39119446..8bdb5733dd 100644 --- a/actionpack/test/dispatch/routing/route_set_test.rb +++ b/actionpack/test/dispatch/routing/route_set_test.rb @@ -160,6 +160,18 @@ module ActionDispatch assert_equal '/foo/1/bar/2', url_helpers.foo_bar_path(2, foo_id: 1) end + test "having an optional scope with resources" do + draw do + scope "(/:foo)" do + resources :users + end + end + + assert_equal '/users/1', url_helpers.user_path(1) + assert_equal '/users/1', url_helpers.user_path(1, foo: nil) + assert_equal '/a/users/1', url_helpers.user_path(1, foo: 'a') + end + test "stringified controller and action keys are properly symbolized" do draw do root 'foo#bar' |