Spec-Zone.ru › Ruby on Rails 8.1

модуль 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 (см. ниже).

Открытые методы экземпляра

slice(*methods) Показать исходный код
# File activemodel/lib/active_model/model.rb, line 48
    

Возвращает хеш указанных методов, используя их имена в качестве ключей, а возвращаемые значения — в качестве значений.

person = Person.new(id: 1, name: "bob")
person.slice(:id, :name)
# => { "id" => 1, "name" => "bob" }
values_at(*methods) Показать исходный код
# File activemodel/lib/active_model/model.rb, line 63
  

Возвращает массив значений, возвращаемых указанными методами.

person = Person.new(id: 1, name: "bob")
person.values_at(:id, :name)
# => [1, "bob"]

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

Spec-Zone.ru

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