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