Method: Nitro::XhtmlHelper#options
- Defined in:
- lib/nitro/helper/xhtml.rb
#options(options = {}) ⇒ Object
Render select options. The parameter is a hash of options.
labels-
The option labels.
values-
The corresponding values.
labels_values-
Use when labels == values.
selected-
The value of the selected option.
Examples
labels = [‘Male’, ‘Female’] o.select(:name => ‘sex’)
o.(:labels => labels, :selected => 1)
or
#:labels => labels, :values => [..], :selected => 1 #:options, :labels => labels, :values => [..], :selected => 1
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/nitro/helper/xhtml.rb', line 63 def ( = {}) if labels = [:labels] || [:labels_values] str = '' values = [:values] || [:labels_values] || (0...labels.size).to_a selected = [:selected] selected = selected.to_s if selected labels.each_with_index do |label, idx| value = values[idx] if [:style] style = if [:style].is_a?(Array) [:style][idx] else [:style] end style = %{ style="#{style}"} end if value.to_s == selected str << %|<option value="#{value}" selected="selected"#{style}>#{label}</option>| else str << %|<option value="#{value}"#{style}>#{label}</option>| end end return str else raise ArgumentError.new('No labels provided') end end |