Spec-Zone.ru › Ruby on Rails 8.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 146
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 131
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