diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index 78ce230b3a..506fbbe129 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -1,3 +1,7 @@ +* `link_to_if` passes the block along. + + *Steven Spiel* + * Load the `default_form_builder` from the controller on initialization, which overrides the global config if it is present. diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb index afb1265ad9..de1ef7af45 100644 --- a/actionview/lib/action_view/helpers/url_helper.rb +++ b/actionview/lib/action_view/helpers/url_helper.rb @@ -410,7 +410,7 @@ module ActionView # # => my_username def link_to_if(condition, name, options = {}, html_options = {}, &block) if condition - link_to(name, options, html_options) + link_to(name, options, html_options, &block) else if block_given? block.arity <= 1 ? capture(name, &block) : capture(name, options, html_options, &block) diff --git a/actionview/test/template/url_helper_test.rb b/actionview/test/template/url_helper_test.rb index ef4df0407a..1a4d4f6a10 100644 --- a/actionview/test/template/url_helper_test.rb +++ b/actionview/test/template/url_helper_test.rb @@ -379,6 +379,11 @@ class UrlHelperTest < ActiveSupport::TestCase assert_dom_equal %{Listing}, link_to_if(true, "Listing", url_hash) end + def test_link_to_if_with_block + assert_equal "Block Showing", link_to_if(false, url_hash) { "Block Showing" } + assert_dom_equal %{Block Listing}, link_to_if(true, url_hash) { "Block Listing" } + end + def request_for_url(url, opts = {}) env = Rack::MockRequest.env_for("http://www.example.com#{url}", opts) ActionDispatch::Request.new(env)