`
wuhuizhong
  • 浏览: 682524 次
  • 性别: Icon_minigender_1
  • 来自: 中山
社区版块
存档分类
最新评论

Rails之记录用户操作数据库信息

    博客分类:
  • ROR
 
阅读更多

db/migrate/002_add_audit_trails_table.rb

class AddAuditTrailsTable < ActiveRecord::Migration
  def self.up
    create_table :audit_trails do |t|
      t.column :record_id, :integer
      t.column :record_type, :string
      t.column :event, :string
      t.column :user_id, :integer
      t.column :created_at, :datetime
    end
end

  def self.down
    drop_table :audit_trails
  end
end
 

在app/models/audit_swpeeper.rb里

class AuditSweeper < ActionController::Caching::Sweeper    
  observe Person      
  def after_destroy(record)      
    log(record, "DESTROY")      
  end      
  def after_update(record)          
    log(record, "UPDATE")      
  end      
  def after_create(record)      
    log(record, "CREATE")      
  end      
  def log(record, event, user = controller.session[:user])          
    AuditTrail.create(:record_id => record.id,
                             :record_type => record.type.name,
                             :event => event,
                             :user_id => user)
  end
end
 

然后我们需要告诉PeopleController在操作Person对象时用audit_sweeper来记录操作

app/controllers/people_controller.rb

cache_sweeper :audit_sweeper
 

由于auditing机制依赖与Rails的缓存代码,所以确保config/environments/development.rb里将config.action_controller.perform_caching设置为true

 

from:http://www.sevenmike.com/page/9/

分享到:
评论

相关推荐

    rails操作.docx

    Rails的数据库操作主要通过ActiveRecord实现,它是一种ORM(对象关系映射)工具,使得Ruby对象可以直接操作数据库记录。 生成Web程序是Rails的一大特色。通过`rails generate`命令,可以自动生成控制器、模型、视图...

    rails敏捷开发的购物车系统

    在Rails中,可以使用ActiveRecord来操作数据库。创建购物车模型(Cart)和商品模型(Product),定义它们之间的关系,如多对多关系,通过一个关联表记录每个购物车包含的商品及其数量。使用`has_and_belongs_to_many...

    Ruby-RailsDBRails数据库查看器和SQL查询运行器

    它提供了一个直观的用户界面,使得开发者可以方便地查看、管理和操作Rails应用中的数据库。这个工具极大地提升了开发效率,尤其是在处理复杂的数据库查询和调试时。 Ruby on Rails(简称Rails)是一个基于Ruby语言...

    Rails for Zombies

    通过"Rails for Zombies"教程,学习者能够对Ruby on Rails框架中的基本概念、数据结构、数据库操作方法、对象属性的访问方式等有一个全面而深入的理解,并能够运用这些知识点来创建基本的Web应用程序。

    web开发之rails最新调试通过购物车代码

    6. **数据库迁移(Database Migrations)**:Rails提供了方便的工具来创建和更新数据库结构。购物车功能可能涉及到创建新的表,如`cart_items`和`orders`。 7. **测试(Testing)**:为了确保代码的健壮性和正确性...

    ruby on rails在线考试系统

    2. 数据库集成:Rails默认使用ActiveRecord,这是一个ORM(对象关系映射)库,允许开发者用Ruby代码操作数据库,无需编写SQL。在这个在线考试系统中,数据库可能包含试题、答案、考生信息、考试记录等表。 3. ...

    Rails 101S

    - 使用Rails内建的Scaffold命令创建模型、控制器和视图,实现基本的CRUD操作。 - 示例:通过`rails generate scaffold Topic title:string description:text`创建一个Topic模型及其关联的CRUD操作。 - **整合...

    railsAPI

    ActiveRecord允许开发者用Ruby代码定义数据库表的结构,以及与表相关的操作,如创建、读取、更新和删除(CRUD)记录。 路由(Routing)在Rails中扮演着核心角色,它将HTTP请求映射到相应的控制器动作。通过配置`...

    rails本地安装包完整版

    7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射为Ruby类,使得开发者可以通过面向对象的方式来操作数据库,而无需编写SQL语句。 这个本地安装包特别适合网络...

    Ruby on Rails实例开发

    在Rails中,通过ActiveRecord可以轻松地进行数据操作,如创建、读取、更新和删除(CRUD)记录。 HTML(超文本标记语言)和CSS(层叠样式表)是构建Web页面的基本元素。HTML负责结构化内容,而CSS则用于样式设计。在...

    Ruby on Rails Guides v2 - Ruby on Rails 4.2.5

    - **定义**:Active Record是一种ORM(对象关系映射)模式,它使得操作数据库中的记录就像操作内存中的普通对象一样简单。 - **作用**:通过Active Record,开发者可以直接在模型类中定义数据表的字段和关系,而无需...

    rails4.0.0

    引入了`find_by`和`find_or_create_by`等简洁的方法,使得数据库操作更加方便。同时,`update_all`和`destroy_all`方法现在可以直接接收SQL片段,提供了更大的灵活性。 2. **查询接口(Query Interface)** 这个版本...

    Advanced Rails

    3. **ActiveRecord高级用法**:ActiveRecord是Rails的ORM(对象关系映射)工具,用于数据库操作。书中会涵盖关联(如has_many, belongs_to, has_one, through)、查询API(如scopes, joins, group, having)以及事务...

    rails学习教程

    ActiveRecord是Rails中的ORM(对象关系映射)库,它自动处理数据库操作。通过定义模型类,你可以创建、读取、更新和删除数据库记录,无需写SQL语句。 七、Rails的测试 Rails强调TDD(测试驱动开发),内置了Test::...

    Ruby on Rails源代码

    8. **配置**:Rails应用的配置信息位于`config`目录下,如`application.rb`和`environment.rb`。源代码揭示了如何根据环境(开发、测试、生产)调整应用配置。 9. **中间件**:Rails使用中间件栈来处理HTTP请求,每...

    ruby on rails社区网站开发源码

    8. **活性记录(ActiveRecord)**:这是Rails的数据访问接口,允许开发者用面向对象的方式操作数据库。 9. **辅助方法(Helper)**:辅助方法可以在视图中使用,帮助处理复杂的展示逻辑,如格式化日期、链接生成等...

Global site tag (gtag.js) - Google Analytics