aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/form_options_helper.rb
diff options
context:
space:
mode:
authorMauro George <maurogot@gmail.com>2015-06-13 15:01:56 -0300
committerMauro George <maurogot@gmail.com>2015-06-13 17:06:00 -0300
commit58a75ffbfe7ee622a4a8551b2bfbbe01b396135e (patch)
tree177ad7ee7fa698e9906ad3e4d89e22b6d5ede6e3 /actionview/lib/action_view/helpers/form_options_helper.rb
parentdfc9269517d787d187ee46c798a4ea0893de0381 (diff)
downloadrails-58a75ffbfe7ee622a4a8551b2bfbbe01b396135e.tar.gz
rails-58a75ffbfe7ee622a4a8551b2bfbbe01b396135e.tar.bz2
rails-58a75ffbfe7ee622a4a8551b2bfbbe01b396135e.zip
Add gotcha to RDoc of collection_check_boxes
[ci skip]
Diffstat (limited to 'actionview/lib/action_view/helpers/form_options_helper.rb')
-rw-r--r--actionview/lib/action_view/helpers/form_options_helper.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/actionview/lib/action_view/helpers/form_options_helper.rb b/actionview/lib/action_view/helpers/form_options_helper.rb
index d3deee0df3..1b7b188d65 100644
--- a/actionview/lib/action_view/helpers/form_options_helper.rb
+++ b/actionview/lib/action_view/helpers/form_options_helper.rb
@@ -707,6 +707,27 @@ module ActionView
# collection_check_boxes(:post, :author_ids, Author.all, :id, :name_with_initial) do |b|
# b.label(:"data-value" => b.value) { b.check_box + b.text }
# end
+ #
+ # ==== Gotcha
+ #
+ # When no selection is made for a collection of checkboxes most
+ # web browsers will not send any value.
+ #
+ # For example, if we have a +User+ model with +category_ids+ field and we
+ # have the following code in our update action:
+ #
+ # @user.update(params[:user])
+ #
+ # If no +category_ids+ are selected then we can safely assume this field
+ # will not be updated.
+ #
+ # This is possible thanks to a hidden field generated by the helper method
+ # for every collection of checkboxes.
+ # This hidden field is given the same field name as the checkboxes with a
+ # blank value.
+ #
+ # In the rare case you don't want this hidden field, you can pass the
+ # <tt>include_hidden: false</tt> option to the helper method.
def collection_check_boxes(object, method, collection, value_method, text_method, options = {}, html_options = {}, &block)
Tags::CollectionCheckBoxes.new(object, method, self, collection, value_method, text_method, options, html_options).render(&block)
end