diff options
author | Jon Moss <me@jonathanmoss.me> | 2016-10-17 21:16:54 -0400 |
---|---|---|
committer | Jon Moss <me@jonathanmoss.me> | 2016-10-17 21:16:54 -0400 |
commit | 4aae8bfe4dc6da1722e7f0f1722cf1f7ef472c19 (patch) | |
tree | 32d119bb4aa9228b4d0e37e0f7504f0592b95ec3 /actionview/lib/action_view | |
parent | 8e76f6959efc44c8575b721fdf53d06ea9430fed (diff) | |
download | rails-4aae8bfe4dc6da1722e7f0f1722cf1f7ef472c19.tar.gz rails-4aae8bfe4dc6da1722e7f0f1722cf1f7ef472c19.tar.bz2 rails-4aae8bfe4dc6da1722e7f0f1722cf1f7ef472c19.zip |
Convert ActionController::Parameters to a hash in button_to
Before, an error would be raised saying that the method `to_param` was
undefined on the instance of `ActionController::Parameters`. Now, we are
checking to see if the `params` object being passed to `button_to`
responds to the `permitted?` method, and if so, we will call `to_h` on it. If it
does not respond to `permitted?`, then the `params` will remain
unchanged.
[Jon Moss, Rafael Mendonça França]
Diffstat (limited to 'actionview/lib/action_view')
-rw-r--r-- | actionview/lib/action_view/helpers/url_helper.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/actionview/lib/action_view/helpers/url_helper.rb b/actionview/lib/action_view/helpers/url_helper.rb index dad0e9dac3..2445887c17 100644 --- a/actionview/lib/action_view/helpers/url_helper.rb +++ b/actionview/lib/action_view/helpers/url_helper.rb @@ -331,6 +331,12 @@ module ActionView inner_tags = method_tag.safe_concat(button).safe_concat(request_token_tag) if params + params = if params.respond_to?(:permitted?) + params.to_h + else + params + end + to_form_params(params).each do |param| inner_tags.safe_concat tag(:input, type: "hidden", name: param[:name], value: param[:value]) end |