модуль ActiveModel::Attributes
Атрибуты Active Model
Модуль 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
Публичные методы экземпляров
# File activemodel/lib/active_model/attributes.rb, line 133 def attribute_names @attributes.keys end
Возвращает массив имён атрибутов в виде строк.
class Person include ActiveModel::Attributes attribute :name, :string attribute :age, :integer end person = Person.new person.attribute_names # => ["name", "age"]
# File activemodel/lib/active_model/attributes.rb, line 118 def attributes @attributes.to_hash end
Возвращает хеш всех атрибутов с именами в качестве ключей и значениями атрибутов.
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}
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.