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) 連結
傳回一個雜湊,其中包含給定方法及其名稱做為鍵值,傳回的值做為數值。
person = Person.new(id: 1, name: "bob")
person.slice(:id, :name)
=> { "id" => 1, "name" => "bob" }
原始碼: 在 GitHub 上
# 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"]
原始碼: 在 GitHub 上
# File activemodel/lib/active_model/model.rb, line 63