`
hideto
  • 浏览: 2678293 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

每天一剂Rails良药之Versioning Your ActiveRecord Models

    博客分类:
  • Ruby
阅读更多
Wiki有一个功能就是Undo,我们来看看Rails的acts_as_versioned插件

1,安装插件
ruby script/plugin install acts_as_versioned


2,例子
class Chapter < ActiveRecord::Base
  acts_as_versioned
end

class AddChapterAndVersionTables < ActiveRecord::Migration
  def self.up
    create_table :chapters do |t|
      t.column :title,   :string
      t.column :body,    :text
      t.column :version, :integer
    end
    Chapter.create_versioned_table
  end

  def self.down
    drop_table :chapters
    Chapter.drop_versioned_table
  end
end

Chapter.create_versioned_table会为我们自动生成chapter_versions表,该表和chapter是多对一的关系
这样每次修改chapter对象都会生成一个新的version
回退到某一个版本:
chapter.revert_to(version_number)

得到总版本数:
chapter.versions(true).size

具体还有哪些方法看看源码acts_as_versioned.rb即可
分享到:
评论
1 楼 dslx01 2008-02-16  
这个插件报possible accidental boolean assignment错误。
有2处的=需要改为==

相关推荐

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...

    Pro ActiveRecord Databases with Ruby and Rails.pdf

    **ActiveRecord**是Ruby on Rails的核心组件之一,它提供了一种简洁的方式来进行数据库交互,通过模型对象(Models)将数据库表映射到程序中。这种方式简化了数据库操作,使得开发人员能够更加专注于业务逻辑而不是...

    Rails3的ActiveRecord 查询API.doc

    Rails 3.1 及以后版本的 ...总的来说,Rails 3 的 ActiveRecord 查询API引入了一种更模块化、更面向对象的方式来处理数据库查询,提高了代码的可读性和可维护性。开发者应逐渐适应并采用新的API,以充分利用其优势。

    hashid-rails:在Rails应用程序ActiveRecord模型中使用Hashids(http:hashids.orgruby)

    您的模型将使用唯一的短哈希,例如“ yLA6m0oM”,“ 5bAyD0LO”和“ wz3MZ49l”,而不是使用诸如1、2、3之类的序号的模型。 数据库仍然会使用整数,因此可以随时添加或删除此gem。 重要信息:如果您需要从1.0之前...

    userstamp, 这个 Rails 插件扩展ActiveRecord.zip

    userstamp, 这个 Rails 插件扩展ActiveRecord Userstamp插件( v-2.0 )概述Userstamp插件扩展了 ActiveRecord::Base,以添加对'创建者','更新程序'和'deleter'属性的自动更新。 它是基于 ActiveRecord::Timesta

    to_xls-rails:将Rails ActiveRecord或Mongid数据导出到Excel文件

    数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git =&gt; "git://github....

    activerecord-sqlserver-adapter-mirroring:Rails 的数据库镜像支持 activerecord-sqlserver-adapter

    目标 Rails 4.1.x 和 activerecord-sqlserver-adapter 4.1.0。 用法 添加到 Gemfile: gem 'tiny_tds' gem 'activerecord-sqlserver-adapter-mirroring' 将镜像部分添加到 database.yml: development: ...

    Apress Pro ActiveRecord Databases with Ruby and Rails.pdf

    **ActiveRecord**是Ruby on Rails框架中的核心组件之一,它实现了ORM的概念,允许开发者以面向对象的方式处理数据库记录。通过ActiveRecord,开发者可以轻松地创建、读取、更新和删除数据库中的数据,而无需编写复杂...

    rails-activerecord-models-and-rails-readme-v-000

    Active Record是Rails用来管理应用程序模型方面的内置ORM。 什么是ORM? ORM是一个对象关系映射系统,从本质上讲,这是一个模块,它使您的应用程序能够以方法驱动的结构来管理数据。 这意味着您可以利用方法而不是...

    Ruby on Rails中的ActiveRecord编程指南

    在Ruby on Rails框架中,ActiveRecord是一种用于实现数据库抽象层的对象关系映射(ORM)工具。它为开发人员提供了一种简单而强大的方式来处理数据库记录。本文档旨在为开发者提供一系列关于如何高效、规范地使用...

    ActiveRecord简单实例_activerecord.zip

    在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...

    Ruby on Rails:ActiveRecord模型操作教程.docx

    Ruby on Rails:ActiveRecord模型操作教程.docx

    Ruby on Rails程序设计深入剖析与范例应用

    本章详细介绍Rails数据持久化技术ActiveRecord的使用,包括ORM与ActiveRecord的简介、建立数据表的映射、执行动态查询、插入数据、删除数据、表之间的关联,以及数据有效性验证等。  第11章 MVC的控制器层。本章...

    rails2.3.8 && ruby1.8.7

    4. `activerecord-2.3.8.gem`:ActiveRecord是Rails的一部分,它是ORM(对象关系映射)库,负责将数据库操作与Ruby类和对象关联起来。 5. `actionpack-2.3.8.gem`:ActionPack是Rails的另一个核心组件,包含了处理...

    基于Java语言的Ruby on Rails ActiveRecord设计理念实现的设计源码

    该项目是采用Java语言实现的Ruby on Rails ActiveRecord设计理念的源码,总计包含46个文件,其中40个为Java源文件,其他包括Git忽略文件、许可证、Markdown文件、XML配置文件、数据库方言和驱动文件等。该设计旨在...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    Rails入门教程一(翻译).pdf

    《Rails入门教程一》是针对初学者的一份详尽指南,旨在帮助读者快速掌握Ruby on Rails框架的基础知识。Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式...

Global site tag (gtag.js) - Google Analytics