Class: Lolita::Configuration::Field::Array
- Defined in:
- lib/lolita/configuration/field/array.rb
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#association_values ⇒ Object
Collect values for array type field.
-
#initialize(*args, &block) ⇒ Array
constructor
A new instance of Array.
- #options_for_select(value = nil, &block) ⇒ Object
- #options_for_select=(value = nil) ⇒ Object
Methods inherited from Base
#name=, #nested?, #nested_in?, #record_value, #set_attributes, #type, #type=, #type_name, #value, #value=
Methods included from Builder
#build, #builder_options, #default_builder, #get_builder
Constructor Details
#initialize(*args, &block) ⇒ Array
Returns a new instance of Array.
7 8 9 10 11 12 13 |
# File 'lib/lolita/configuration/field/array.rb', line 7 def initialize *args,&block @type="array" self.builder="select" @include_blank=true super set_association_type end |
Instance Method Details
#association_values ⇒ Object
Collect values for array type field. Uses text_method for content. By default it search for first String type field in DB. Uses value_method for value, by default it it is id. Use conditions or find_options for advanced search. When find_options is used, than conditions is ignored.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/lolita/configuration/field/array.rb', line 30 def association_values() #TODO test @association_values||=if elsif @association klass=@dbi.association_class_name(@association).camelize.constantize current_text_method=@text_method || default_text_method(klass) current_value_method=@value_method || :id = || {} [:conditions]||=@conditions klass.find(:all,).map{|r| [r.send(current_text_method),r.send(current_value_method)] } else [] end @association_values end |
#options_for_select(value = nil, &block) ⇒ Object
19 20 21 22 |
# File 'lib/lolita/configuration/field/array.rb', line 19 def value=nil, &block =value || block if value || block_given? end |
#options_for_select=(value = nil) ⇒ Object
15 16 17 |
# File 'lib/lolita/configuration/field/array.rb', line 15 def (value=nil) =value end |