Module: ExtraAttribute::ClassMethods
- Defined in:
- lib/extra_attribute.rb
Instance Method Summary collapse
Instance Method Details
#extra_attributes(column, attribute_arrays) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/extra_attribute.rb', line 3 def extra_attributes(column, attribute_arrays) @@column = column.to_s attribute_arrays.each do |attr| define_method "#{attr}" do extra_data ||= JSON.parse(attributes[@@column] ? attributes[@@column] : '{}') return extra_data[attr.to_s].present? ? extra_data[attr.to_s] : nil end define_method "#{attr}=" do |val| extra_data ||= JSON.parse(attributes[@@column] ? attributes[@@column] : '{}') extra_data[attr.to_s] = val self.send("#{@@column}=", extra_data.to_json) end end end |