Spec-Zone.ru › Ruby on Rails 7.0

модуль ActiveModel::Model

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

Базовый Active Model

Позволяет реализовывать модели, аналогичные ActiveRecord::Base. Включает ActiveModel::API для необходимого интерфейса взаимодействия объекта с Action Pack и Action View, но может быть расширен дополнительными функциями.

Минимальная реализация может быть такой:

class Person
  include ActiveModel::Model
  attr_accessor :name, :age
end

person = Person.new(name: 'bob', age: '18')
person.name # => "bob"
person.age  # => "18"

Если по какой-то причине вам нужно выполнить код на initialize, убедитесь, что вы вызываете super, если хотите, чтобы произошла инициализация хеша атрибутов.

class Person
  include ActiveModel::Model
  attr_accessor :id, :name, :omg

  def initialize(attributes={})
    super
    @omg ||= true
  end
end

person = Person.new(id: 1, name: 'bob')
person.omg # => true

Для более подробной информации об остальных доступных функциях, обратитесь к конкретным модулям, включённым в ActiveModel::Model (см. ниже).

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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