forms_helper.rb
1.37 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
module FormsHelper
def generate_form( name, obj, fields={} )
labelled_form_for name, obj do |f|
f.text_field(:name)
end
end
def labelled_radio_button( human_name, name, value, checked = false, options = {} )
options[:id] ||= 'radio-' + FormsHelper.next_id_number
radio_button_tag( name, value, checked, options ) +
content_tag( 'label', human_name, :for => options[:id] )
end
def labelled_check_box( human_name, name, value = "1", checked = false, options = {} )
options[:id] ||= 'checkbox-' + FormsHelper.next_id_number
check_box_tag( name, value, checked, options ) +
content_tag( 'label', human_name, :for => options[:id] )
end
def labelled_text_field( human_name, name, value=nil, options={} )
options[:id] ||= 'text-field-' + FormsHelper.next_id_number
content_tag('label', human_name, :for => options[:id]) +
text_field_tag( name, value, options )
end
def labelled_select( human_name, name, value_method, text_method, selected, collection, options )
options[:id] ||= 'select-' + FormsHelper.next_id_number
content_tag('label', human_name, :for => options[:id]) +
select_tag( name, options_from_collection_for_select(collection, value_method, text_method, selected), options)
end
protected
def self.next_id_number
if defined? @@id_num
@@id_num.next!
else
@@id_num = '0'
end
end
end