Module: EasyModel::ColumnForActiveModel
- Defined in:
- lib/easy_model/column_for_active_model.rb
Overview
テーブルに存在しないカラムを定義する機能を提供する.
詳細
attr_accessor による属性定義とは異なり, データ型及びデフォルト値を指定することが可能.
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#easy_model_attribute_names ⇒ Object
(also: #attribute_names)
属性名の配列.
-
#easy_model_attributes ⇒ Object
(also: #attributes)
属性名と値を保持するハッシュ.
-
#reset_changes ⇒ Object
属性の変更情報をリセットする.
Class Method Details
.included(base) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/easy_model/column_for_active_model.rb', line 14 def self.included(base) base.send(:include, ActiveModel::Model) base.send(:include, ActiveModel::Dirty) base.send(:include, ActiveModel::Serializers::Xml) base.send(:include, ActiveRecord::AttributeAssignment) base.extend(EasyModel::ColumnForActiveModel::ClassMethods) end |
Instance Method Details
#easy_model_attribute_names ⇒ Object Also known as: attribute_names
属性名の配列.
戻り値
EasyModel::ColumnForActiveModel::ClassMethods#column で定義した属性名を文字列配列として返す.
28 29 30 |
# File 'lib/easy_model/column_for_active_model.rb', line 28 def easy_model_attribute_names self.class.easy_model_attribute_names end |
#easy_model_attributes ⇒ Object Also known as: attributes
属性名と値を保持するハッシュ.
戻り値
=> 値 であるハッシュ.
39 40 41 42 43 |
# File 'lib/easy_model/column_for_active_model.rb', line 39 def easy_model_attributes self.class.easy_model_attribute_names.reduce({}) do |map, name| map.tap{map[name] = send(name)} end end |
#reset_changes ⇒ Object
属性の変更情報をリセットする.
詳細
属性の変更情報をリセットすると, #changed? は false を返すようになる.
52 53 54 55 |
# File 'lib/easy_model/column_for_active_model.rb', line 52 def reset_changes @previously_changed = {} @changed_attributes = {} end |