1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

add include_hidden option to collection_check_boxes helper

This commit is contained in:
Vasiliy Ermolovich 2013-10-27 18:14:16 +03:00
parent 094e31ce67
commit 106c988c10
3 changed files with 19 additions and 4 deletions

View file

@ -1,6 +1,10 @@
* Add `include_hidden` option to `collection_check_boxes` helper.
*Vasiliy Ermolovich*
* Ensure ActionView::Digestor.cache is correctly cleaned up when
combining recursive templates with ActionView::Resolver.caching = false
*wyaeld*
* Fix `collection_check_boxes` generated hidden input to use the name attribute provided

View file

@ -27,10 +27,14 @@ module ActionView
# Append a hidden field to make sure something will be sent back to the
# server if all check boxes are unchecked.
hidden_name = @html_options[:name] || "#{tag_name}[]"
hidden = @template_object.hidden_field_tag(hidden_name, "", :id => nil)
if @options.fetch(:include_hidden, true)
hidden_name = @html_options[:name] || "#{tag_name}[]"
hidden = @template_object.hidden_field_tag(hidden_name, "", :id => nil)
rendered_collection + hidden
rendered_collection + hidden
else
rendered_collection
end
end
private

View file

@ -186,6 +186,13 @@ class FormCollectionsHelperTest < ActionView::TestCase
assert_select "input[type=hidden][name='user[other_category_ids][]'][value=]", :count => 1
end
test 'collection check boxes does not generate a hidden field if include_hidden option is false' do
collection = [Category.new(1, 'Category 1'), Category.new(2, 'Category 2')]
with_collection_check_boxes :user, :category_ids, collection, :id, :name, include_hidden: false
assert_select "input[type=hidden][name='user[category_ids][]'][value=]", :count => 0
end
test 'collection check boxes accepts a collection and generate a serie of checkboxes with labels for label method' do
collection = [Category.new(1, 'Category 1'), Category.new(2, 'Category 2')]
with_collection_check_boxes :user, :category_ids, collection, :id, :name