Spec-Zone.ru › Ruby on Rails 7.1

модуль ActiveModel::Attributes

Включенные модули:
ActiveModel::AttributeMethods

Атрибуты 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

Публичные методы экземпляров

attribute_names() Показать исходный код
# 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"]
attributes() Показать исходный код
# 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API