1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
module ActionView
module Helpers
module Tags # :nodoc:
class GroupedCollectionSelect < Base # :nodoc:
def initialize(object_name, method_name, template_object, collection, group_method, group_label_method, option_key_method, option_value_method, options, html_options)
@collection = collection
@group_method = group_method
@group_label_method = group_label_method
@option_key_method = option_key_method
@option_value_method = option_value_method
@html_options = html_options
super(object_name, method_name, template_object, options)
end
def render
option_tags_options = {
selected: @options.fetch(:selected) { value(@object) },
disabled: @options[:disabled]
}
select_content_tag(
option_groups_from_collection_for_select(@collection, @group_method, @group_label_method, @option_key_method, @option_value_method, option_tags_options), @options, @html_options
)
end
end
end
end
end
|