Ruby on rails Rails中是否有与SQLServer中相同的已删除表?
我需要能够在我的rails应用程序中执行下面演示的操作。如您所见,在SQLServer中有一个名为DELETED的表,用于存储刚刚删除的行。资料来源:Ruby on rails Rails中是否有与SQLServer中相同的已删除表?,ruby-on-rails,activerecord,triggers,delete-row,Ruby On Rails,Activerecord,Triggers,Delete Row,我需要能够在我的rails应用程序中执行下面演示的操作。如您所见,在SQLServer中有一个名为DELETED的表,用于存储刚刚删除的行。资料来源: 将此逻辑应用于rails,是否有这样一个表/位置可供调用以获取这些行,就像它们在rails中被删除一样?我知道销毁之前/之后有回调,但如何访问正在销毁的信息?依赖特定于数据库的行为不是ActiveRecord的功能所在。它仅使用RDBMS作为持久存储的一种形式。像这样的数据处理委托给应用程序代码 ActiveRecord原则声明数据库中的每一行都
将此逻辑应用于rails,是否有这样一个表/位置可供调用以获取这些行,就像它们在rails中被删除一样?我知道销毁之前/之后有回调,但如何访问正在销毁的信息?依赖特定于数据库的行为不是ActiveRecord的功能所在。它仅使用RDBMS作为持久存储的一种形式。像这样的数据处理委托给应用程序代码 ActiveRecord原则声明数据库中的每一行都是应用程序中模型类的实例。因此,对即将销毁的模型实例调用回调 在销毁模型之前(
Before\u destroy
),应该可以通过回调中的类字段访问数据。因此,您应该能够将此回调放入您希望跟踪的模型之一:
def log_to_history
DeletedStuff.create(
title: "Something number #{id}",
deleted_at: Time.now,
content: self.to_yaml
)
end
before_delete :log_to_history
这是一个有点奇怪的例子,它允许在同一个表中存储几乎任何已删除的项(甚至不同模型的实例),属性是用YAML序列化的。但我尽了最大努力公开了数据结构,所以它可以很容易地修改以满足您的需要
此示例需要一个带有字段的DeletedStuff
模型
标题:字符串
已删除\u时间
内容:文本
self
。那么如何才能删除该对象。那么我可以使用语法@deleted\u row=self
?
def log_to_history
DeletedStuff.create(
title: "Something number #{id}",
deleted_at: Time.now,
content: self.to_yaml
)
end
before_delete :log_to_history