aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2015-05-01 10:50:01 +0200
committerYves Senn <yves.senn@gmail.com>2015-05-01 10:54:23 +0200
commitd459b001b43d25053e7982e96eb8383538a6e358 (patch)
tree2a72ebc5e9439d79fe7654e13d20bae4ccb73333
parent4d4950fae9e2a6970b5f1793aadc56a0b44e28a3 (diff)
parent58c3a0451260dfd693b47d561cf623cce1b38b99 (diff)
downloadrails-d459b001b43d25053e7982e96eb8383538a6e358.tar.gz
rails-d459b001b43d25053e7982e96eb8383538a6e358.tar.bz2
rails-d459b001b43d25053e7982e96eb8383538a6e358.zip
Merge pull request #19844 from stevenspiel/link_to_if_block_helper_addition
Update url_helper.rb
-rw-r--r--actionview/CHANGELOG.md4
-rw-r--r--actionview/lib/action_view/helpers/url_helper.rb2
-rw-r--r--actionview/test/template/url_helper_test.rb5
3 files changed, 10 insertions, 1 deletions
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
# # => <a href="/accounts/show/3">my_username</a>
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 %{<a href="/">Listing</a>}, 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 %{<a href="/">Block Listing</a>}, 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)