Class: HasDynamicColumns::DynamicColumnDatum
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- HasDynamicColumns::DynamicColumnDatum
- Defined in:
- lib/has_dynamic_columns/dynamic_column_datum.rb
Instance Method Summary collapse
-
#value ⇒ Object
Get value based on dynamic_column data_type.
-
#value=(v) ⇒ Object
Set value base don dynamic_column data_type.
Instance Method Details
#value ⇒ Object
Get value based on dynamic_column data_type
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/has_dynamic_columns/dynamic_column_datum.rb', line 8 def value if self.dynamic_column case self.dynamic_column.data_type when "list" if self.dynamic_column_option self.dynamic_column_option.key end when "datetime" self[:value] when "boolean" (self[:value] == 1) when "integer" self[:value] when "date" self[:value] when "string" self[:value] end else self[:value] end end |
#value=(v) ⇒ Object
Set value base don dynamic_column data_type
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/has_dynamic_columns/dynamic_column_datum.rb', line 32 def value=v if self.dynamic_column case self.dynamic_column.data_type when "list" # Can only set the value to one of the option values if option = self.dynamic_column..select { |i| i.key == v }.first self.dynamic_column_option = option else # Hacky, -1 indicates to the validator that an invalid option was set self.dynamic_column_option = nil self.dynamic_column_option_id = (v.to_s.length > 0)? -1 : nil end when "datetime" self[:value] = v when "boolean" self[:value] = v when "integer" self[:value] = v when "date" self[:value] = v when "string" self[:value] = v end else self[:value] = v end end |