欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

ActiveModel:让Ruby对象拥有ActiveRecord的行为

程序员文章站 2022-03-24 13:35:36
...

Ruby on Rails的核心成员,Yehuda Katz在其博客中介绍了 ActiveModel,Rails 3中的另一个重要功能。ActiveModel是一个新的库,提供ActiveRecord的部分model,但不受数据库限制。

 

通过使用ActiveModel任何Ruby类都能拥有类似Rails的model行为,而且不会受到Rails和数据库的限制,以下是在非Rails类上使用 ActiveModel的一个示例:

 

require 'active_model'

class Person
  include ActiveModel::Validations

  validates_presence_of :first_name, :last_name

  attr_accessor :first_name, :last_name
  def initialize(first_name, last_name)
    @first_name, @last_name = first_name, last_name
  end
end

a = Person.new("Fred", nil)
a.valid? # => false
a.last_name = "Flintstone"
a.valid? # => true

 

查看更多介绍:http://yehudakatz.com/2010/01/10/activemodel-make-any-ruby-object-feel-like-activerecord/

 

查看ActiveRecord的介绍:http://www.ibm.com/developerworks/cn/web/wa-rails3/(中文)