`
mike.gao
  • 浏览: 49094 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

用户操作数据库记录

阅读更多
今天我们看看怎样在数据库记录用户操作
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
分享到:
评论

相关推荐

    基于SQL server 2008数据库的ifix操作记录教程

    通过这个图形界面,用户可以学习如何使用Transact-SQL(T-SQL)语言来检索和分析ifix产生的操作记录。例如,你可以使用`SELECT`语句结合`WHERE`子句来定位特定时间段内的数据修改,或者使用`JOIN`操作来结合其他表以...

    易语言客户端源码,易语言服务器源码,易语言远程操作数据库

    在这个压缩包中,我们找到了易语言客户端和服务器的源代码,以及用于远程操作数据库的相关功能,包括记录的增加、查找、修改和删除。 首先,让我们了解一下易语言。易语言的核心理念是“易学易用”,它的语法简洁...

    导出SQL数据库记录

    "导出SQL数据库记录"这一主题涉及到SQL Server 2000、2005和2008三个版本,这些都是微软提供的关系型数据库管理系统,广泛应用于企业级的数据存储和处理。以下是对这个主题的详细解释: 1. **SQL Server数据库导出*...

    利用Oracle审计功能记录数据库操作.doc

    - `AUDIT_SYS_OPERATIONS`:默认为false,设置为true时,所有以sysdba或sysoper身份登录的sys用户操作将被记录。如果记录不在aud$表中,Windows平台会记录在事件管理器,而Linux/Unix则记录在由`audit_file_dest`...

    使用mysqlbinlog工具恢复删除的数据库记录.docx

    使用 MySQLbinlog 工具恢复删除的数据库记录可以帮助我们快速恢复数据库中的错误操作,避免数据丢失和数据不一致。同时,这也可以帮助我们更好地了解数据库的操作记录,提高数据库的安全性和可靠性。

    易语言模块易2.55版数据库记录编辑器模块.rar

    本模块——易2.55版数据库记录编辑器模块,是专为易语言用户设计的一个高效工具,用于便捷地进行数据库记录的操作与编辑。 一、易语言模块的基础概念 易语言模块是易语言编程环境中的一个重要组成部分,它是一组...

    oracle数据库巡检记录表

    ### Oracle数据库巡检记录表知识点解析 #### 一、Oracle数据库巡检背景及意义 - **巡检背景**:为了确保Oracle数据库系统的稳定运行和高效性能,定期进行数据库巡检是一项必要的维护工作。 - **巡检意义**: - **...

    易3.5版数据库记录编辑器模块.rar

    《易3.5版数据库记录编辑器模块》是一款专为数据库操作设计的高效工具,它提供了对数据库记录的直观编辑、查看以及管理功能。这款软件适用于那些需要频繁处理数据库记录的专业人士,例如数据库管理员、软件开发者...

    用Visual C#来修改和删除数据库记录

    综上所述,Visual C#中修改和删除数据库记录的关键在于构建正确的SQL语句,通过`OleDbCommand`执行操作,同时保持`DataSet`对象与数据库的同步。理解这些概念对于进行数据库驱动的应用程序开发至关重要。在实际应用...

    用ADO实现数据库记录排序

    在实际操作中,使用ADO实现数据库记录排序的步骤如下: 1. 创建Connection对象,设置正确的连接字符串以连接到数据库。 2. 创建Command对象,设置SQL查询语句,其中包含ORDER BY子句来指定排序字段和排序方式(升序...

    完整版易3.5版数据库记录编辑器模块.rar

    本模块适用于那些需要深入操作数据库记录的用户,尤其是在数据分析、信息管理和系统维护等领域。下面将详细介绍该模块的关键特性和应用场景。 一、核心特性 1. 用户友好的界面:易3.5版数据库记录编辑器模块以其...

    VB 数据库及记录集操作工具

    "VB 数据库及记录集操作工具" 提供了一个框架,使得开发者能够轻松地执行数据库操作,如插入、更新、删除数据以及管理数据库结构。 1. **数据库连接**: 在VB中,使用ADO(ActiveX Data Objects)库来建立与数据库...

    易语言模块易3.5版数据库记录编辑器模块.rar

    易语言3.5版的数据库记录编辑器模块,专门用于对数据库中的记录进行创建、修改、删除等操作,极大地简化了数据库操作的复杂性,使得开发者可以更加专注于业务逻辑的实现。 二、数据库记录编辑器模块功能 1. 记录...

    完整版易2.55版数据库记录编辑器模块.rar

    《易2.55版数据库记录编辑器模块》是一款专为数据库管理设计的高效工具,其主要功能在于方便用户对数据库中的记录进行编辑、查看和管理。在这个版本中,开发者针对用户需求进行了全面升级和优化,提升了软件的稳定性...

    JDBC 用户登录\用户注册\JTable 显示数据库中的记录

    使用 JDBC,可以在 Java 程序中访问和操作数据库中的数据。 JDBC 连接数据库 要使用 JDBC 连接数据库,需要以下步骤: 1. 导入数据库包:需要将数据库的 JDBC 驱动程序加入到 Java 项目的类路径中。在本例中,...

    易语言数据库记录集分页显示

    通过以上分析,我们可以看出"易语言数据库记录集分页显示"不仅涉及到数据库操作,还涵盖了用户界面设计和性能优化等多个方面。理解和掌握这些知识点,对于开发高效、友好的数据展示应用至关重要。

    易语言多用户远程数据库操作

    在多用户环境下,当两个或更多用户同时请求修改同一数据库记录时,必须有一个机制来确保数据的一致性。易语言中,可以通过同步原语(如信号量、事件)实现线程间的协调,防止数据冲突。例如,当一个用户正在更新记录...

    ACCESS数据库记录的编辑

    本文将详细探讨"ACCESS数据库记录的编辑"这一主题,包括如何添加、删除数据库记录以及相关的操作技巧。 在Access数据库中,记录是数据的基本单位,每个记录通常代表一类特定的信息,如员工信息表中的一条记录可能...

    作业6 JSP JDBC操作数据库

    作业6 JDBC操作数据库 作业类型:验证性实验 实验目的:理解JDBC接口操作数据库的方法,熟练掌握数据的增删改查。 实验内容: 1. 在MySQL或其他DBS中创建一个数据库TestDB,其中创建表user,表至少3个字段(编号,...

Global site tag (gtag.js) - Google Analytics