Active Model 属性
The Attributes
模块允许模型定义超出简单 Ruby 读写器的属性。类似于 Active Record 属性(通常从数据库模式推断),Active Model
Attributes
了解数据类型,可以具有默认值,并且可以处理转换和序列化。
要使用 Attributes
,请在您的模型类中包含该模块,并使用 attribute
宏定义您的属性。它接受名称、类型、默认值以及属性类型支持的任何其他选项。
示例
class Person
include ActiveModel::Attributes
attribute :name, :string
attribute :active, :boolean, default: true
end
person = Person.new
person.name = "Volmer"
person.name # => "Volmer"
person.active # => true
命名空间
方法
包含的模块
实例公共方法
attribute_names() 链接
返回一个包含属性名称(作为字符串)的数组。
class Person
include ActiveModel::Attributes
attribute :name, :string
attribute :age, :integer
end
person = Person.new
person.attribute_names # => ["name", "age"]
来源:显示 | 在 GitHub 上
# File activemodel/lib/active_model/attributes.rb, line 146 def attribute_names @attributes.keys end
attributes() 链接
返回一个包含所有属性的哈希表,其中键为属性名称,值为属性值。
class Person
include ActiveModel::Attributes
attribute :name, :string
attribute :age, :integer
end
person = Person.new
person.name = "Francesco"
person.age = 22
person.attributes # => { "name" => "Francesco", "age" => 22}
来源:显示 | 在 GitHub 上
# File activemodel/lib/active_model/attributes.rb, line 131 def attributes @attributes.to_hash end