跳到內文 跳到搜尋

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 中包含的特定模組(見下方)。

方法
S
V
包含的模組

執行個體公開的方法

slice(*methods)

傳回一個雜湊,其中包含給定方法及其名稱做為鍵值,傳回的值做為數值。

person = Person.new(id: 1, name: "bob")
person.slice(:id, :name)
=> { "id" => 1, "name" => "bob" }
# File activemodel/lib/active_model/model.rb, line 48
    

values_at(*methods)

傳回給定方法傳回值的陣列。

person = Person.new(id: 1, name: "bob")
person.values_at(:id, :name)
=> [1, "bob"]
# File activemodel/lib/active_model/model.rb, line 63