Class: Compony::VirtualModel

Inherits:
ActiveType::Object
  • Object
show all
Includes:
ActiveModel::Attributes, Anchormodel::ModelMixin, ModelMixin
Defined in:
lib/compony/virtual_model.rb

Instance Method Summary collapse

Methods included from ModelMixin

#feasibility_messages, #feasible?, #field, #full_feasibility_messages

Instance Method Details

#attributesObject

include ActiveModel::Attributes above shadows ActiveType::VirtualAttributes#attributes, which would otherwise merge virtual columns into the returned hash. Without this restoration, attributes declared via attribute :foo, :type (routed to at_attribute by ActiveType) are written into @virtual_attributes but invisible to #attributes, breaking callers that do model.attributes.slice(...) etc. Mirrors ActiveType::VirtualAttributes#attributes.



15
16
17
18
19
# File 'lib/compony/virtual_model.rb', line 15

def attributes
  self.class._virtual_column_names.each_with_object(super) do |name, attrs|
    attrs[name] = read_virtual_attribute(name)
  end
end