Active Model API
包含物件與 Action Pack 和 Action View 互動所需的介面,使用不同的 Active Model 模組。它包含模型名稱自省、轉換、翻譯和驗證。此外,它允許您使用屬性雜湊初始化物件,就像 Active Record 所做的一樣。
最小實作可以是
class Person
include ActiveModel::API
attr_accessor :name, :age
end
person = Person.new(name: 'bob', age: '18')
person.name # => "bob"
person.age # => "18"
請注意,預設情況下,ActiveModel::API
實作 persisted?
回傳 false
,這是最常見的情況。您可能想在類別中覆寫它來模擬不同的場景
class Person
include ActiveModel::API
attr_accessor :id, :name
def persisted?
self.id.present?
end
end
person = Person.new(id: 1, name: 'bob')
person.persisted? # => true
此外,如果您因為某些原因需要在初始化時執行程式碼 ( ::new
),請務必呼叫 super
,如果您希望屬性雜湊初始化發生。
class Person
include ActiveModel::API
attr_accessor :id, :name, :omg
def initialize(attributes={})
super
@omg ||= true
end
end
person = Person.new(id: 1, name: 'bob')
person.omg # => true
有關其他可用功能的更詳細資訊,請參閱 ActiveModel::API
中包含的特定模組 (見下文)。
方法
- N
- P
包含的模組
類別公開方法
new(attributes = {}) 連結
使用指定的 params
初始化新的模型。
class Person
include ActiveModel::API
attr_accessor :name, :age
end
person = Person.new(name: 'bob', age: '18')
person.name # => "bob"
person.age # => "18"