Class: ActiveRecord::ModelSchema::SchemaContext::Attributes
Do not use. This class is for internal use only.
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | activerecord/lib/active_record/model_schema/schema_context.rb |
Overview
Attributes owns a model's attribute-derived state: attribute
defaults, attribute types, and column defaults.
Class Method Summary
- .new(context) ⇒ Attributes constructor
Instance Attribute Summary
Instance Method Summary
Constructor Details
.new(context) ⇒ Attributes
# File 'activerecord/lib/active_record/model_schema/schema_context.rb', line 15
def initialize(context) attribute_set = context.attribute_set context.model_class.apply_pending_attribute_modifications(attribute_set) @defaults = attribute_set @context = context end
Instance Attribute Details
#context (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/model_schema/schema_context.rb', line 13
attr_reader :context, :defaults
#defaults (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/model_schema/schema_context.rb', line 13
attr_reader :context, :defaults
Instance Method Details
#builder
[ GitHub ]# File 'activerecord/lib/active_record/model_schema/schema_context.rb', line 29
def builder primary_key_defaults = defaults.except(*(context.model_class.column_names - Array(context.model_class.primary_key))) ActiveModel::AttributeSet::Builder.new(types, primary_key_defaults) end
#column_defaults
[ GitHub ]#types
[ GitHub ]# File 'activerecord/lib/active_record/model_schema/schema_context.rb', line 23
def types @types ||= defaults.cast_types.tap do |hash| hash.default = ActiveModel::Type.default_value end end