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的数据库操作主要通过ActiveRecord实现,它是一种ORM(对象关系映射)工具,使得Ruby对象可以直接操作数据库记录。 生成Web程序是Rails的一大特色。通过`rails generate`命令,可以自动生成控制器、模型、视图...
在Rails中,可以使用ActiveRecord来操作数据库。创建购物车模型(Cart)和商品模型(Product),定义它们之间的关系,如多对多关系,通过一个关联表记录每个购物车包含的商品及其数量。使用`has_and_belongs_to_many...
它提供了一个直观的用户界面,使得开发者可以方便地查看、管理和操作Rails应用中的数据库。这个工具极大地提升了开发效率,尤其是在处理复杂的数据库查询和调试时。 Ruby on Rails(简称Rails)是一个基于Ruby语言...
通过"Rails for Zombies"教程,学习者能够对Ruby on Rails框架中的基本概念、数据结构、数据库操作方法、对象属性的访问方式等有一个全面而深入的理解,并能够运用这些知识点来创建基本的Web应用程序。
6. **数据库迁移(Database Migrations)**:Rails提供了方便的工具来创建和更新数据库结构。购物车功能可能涉及到创建新的表,如`cart_items`和`orders`。 7. **测试(Testing)**:为了确保代码的健壮性和正确性...
2. 数据库集成:Rails默认使用ActiveRecord,这是一个ORM(对象关系映射)库,允许开发者用Ruby代码操作数据库,无需编写SQL。在这个在线考试系统中,数据库可能包含试题、答案、考生信息、考试记录等表。 3. ...
- 使用Rails内建的Scaffold命令创建模型、控制器和视图,实现基本的CRUD操作。 - 示例:通过`rails generate scaffold Topic title:string description:text`创建一个Topic模型及其关联的CRUD操作。 - **整合...
ActiveRecord允许开发者用Ruby代码定义数据库表的结构,以及与表相关的操作,如创建、读取、更新和删除(CRUD)记录。 路由(Routing)在Rails中扮演着核心角色,它将HTTP请求映射到相应的控制器动作。通过配置`...
7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射为Ruby类,使得开发者可以通过面向对象的方式来操作数据库,而无需编写SQL语句。 这个本地安装包特别适合网络...
在Rails中,通过ActiveRecord可以轻松地进行数据操作,如创建、读取、更新和删除(CRUD)记录。 HTML(超文本标记语言)和CSS(层叠样式表)是构建Web页面的基本元素。HTML负责结构化内容,而CSS则用于样式设计。在...
- **定义**:Active Record是一种ORM(对象关系映射)模式,它使得操作数据库中的记录就像操作内存中的普通对象一样简单。 - **作用**:通过Active Record,开发者可以直接在模型类中定义数据表的字段和关系,而无需...
引入了`find_by`和`find_or_create_by`等简洁的方法,使得数据库操作更加方便。同时,`update_all`和`destroy_all`方法现在可以直接接收SQL片段,提供了更大的灵活性。 2. **查询接口(Query Interface)** 这个版本...
3. **ActiveRecord高级用法**:ActiveRecord是Rails的ORM(对象关系映射)工具,用于数据库操作。书中会涵盖关联(如has_many, belongs_to, has_one, through)、查询API(如scopes, joins, group, having)以及事务...
ActiveRecord是Rails中的ORM(对象关系映射)库,它自动处理数据库操作。通过定义模型类,你可以创建、读取、更新和删除数据库记录,无需写SQL语句。 七、Rails的测试 Rails强调TDD(测试驱动开发),内置了Test::...
8. **配置**:Rails应用的配置信息位于`config`目录下,如`application.rb`和`environment.rb`。源代码揭示了如何根据环境(开发、测试、生产)调整应用配置。 9. **中间件**:Rails使用中间件栈来处理HTTP请求,每...
8. **活性记录(ActiveRecord)**:这是Rails的数据访问接口,允许开发者用面向对象的方式操作数据库。 9. **辅助方法(Helper)**:辅助方法可以在视图中使用,帮助处理复杂的展示逻辑,如格式化日期、链接生成等...