diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-06-20 11:37:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-20 11:37:48 -0400 |
commit | 95ee77b3aeed0eb9cbac22268b398a7917e536d3 (patch) | |
tree | b9480665600e1e592543d1d134fb44dedf201cef | |
parent | 70d3c38447eb93950d3d6d61938fe24b7fccf21f (diff) | |
parent | 01ddd1cecff3fabd1ecaeb86717612e757b74139 (diff) | |
download | rails-95ee77b3aeed0eb9cbac22268b398a7917e536d3.tar.gz rails-95ee77b3aeed0eb9cbac22268b398a7917e536d3.tar.bz2 rails-95ee77b3aeed0eb9cbac22268b398a7917e536d3.zip |
Merge pull request #29503 from savroff/fix_current_page_engine_issue
Fix current_page? helper issue with engine root path
-rw-r--r-- | actionview/CHANGELOG.md | 6 | ||||
-rw-r--r-- | actionview/lib/action_view/helpers/url_helper.rb | 5 | ||||
-rw-r--r-- | actionview/test/template/url_helper_test.rb | 16 |
3 files changed, 23 insertions, 4 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index ceaea40d18..916d29a540 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -1,3 +1,9 @@ +* Fix issues with scopes and engine on `current_page?` method. + + Fixes #29401. + + *Nikita Savrov* + * Generate field ids in `collection_check_boxes` and `collection_radio_buttons`. This makes sure that the labels are linked up with the fields. diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb index a6857101b9..b78c367921 100644 --- a/actionview/lib/action_view/helpers/url_helper.rb +++ b/actionview/lib/action_view/helpers/url_helper.rb @@ -552,7 +552,10 @@ module ActionView request_uri = url_string.index("?") || check_parameters ? request.fullpath : request.path request_uri = URI.parser.unescape(request_uri).force_encoding(Encoding::BINARY) - url_string.chomp!("/") if url_string.start_with?("/") && url_string != "/" + if url_string.start_with?("/") && url_string != "/" + url_string.chomp!("/") + request_uri.chomp!("/") + end if %r{^\w+://}.match?(url_string) url_string == "#{request.protocol}#{request.host_with_port}#{request_uri}" diff --git a/actionview/test/template/url_helper_test.rb b/actionview/test/template/url_helper_test.rb index 30dc719ce6..bdedbeba92 100644 --- a/actionview/test/template/url_helper_test.rb +++ b/actionview/test/template/url_helper_test.rb @@ -15,6 +15,10 @@ class UrlHelperTest < ActiveSupport::TestCase get "/other" => "foo#other" get "/article/:id" => "foo#article", :as => :article get "/category/:category" => "foo#category" + + scope :engine do + get "/" => "foo#bar" + end end include ActionView::Helpers::UrlHelper @@ -521,10 +525,10 @@ class UrlHelperTest < ActiveSupport::TestCase assert current_page?("http://www.example.com/?order=desc&page=1") end - def test_current_page_with_not_get_verb - @request = request_for_url("/events", method: :post) + def test_current_page_with_scope_that_match + @request = request_for_url("/engine/") - assert !current_page?("/events") + assert current_page?("/engine") end def test_current_page_with_escaped_params @@ -553,6 +557,12 @@ class UrlHelperTest < ActiveSupport::TestCase assert current_page?("/posts/") end + def test_current_page_with_not_get_verb + @request = request_for_url("/events", method: :post) + + assert !current_page?("/events") + end + def test_link_unless_current @request = request_for_url("/") |