导轨 - after_save的 - 如何确定一个记录的创建/更新或删除
问题描述:
在我的Rails应用程序,我有以下型号:导轨 - after_save的 - 如何确定一个记录的创建/更新或删除
Messages (id, title, content, project_id)
MessageViews (id, message_id, view_status)
Permissions (id, user_id, project_id)
Projects (id, name)
每当用户添加到其现有的邮件,我想一个项目为项目中的每条消息创建MessageView记录。
同样,如果用户的项目权限被删除,我想删除与该项目的消息相关的所有用户的messageViews。
在我的权限模型,所以到目前为止,我有:
before_destroy :check_message_views
private
def check_message_views
.....
end
如何在check_message_views我能确定是否正在创建/更新或删除的记录。
When created/updated, I want to loop through and check
When deleted, I want to loop through all the project's messages and delete any messageView for that user.
感谢
答
应该不是你的MessageView
模型属于Permission
?然后你可以设置:dependent=>:destroy
,一切都应该自动工作。您可以使用destroyed?
方法。
我不认为有什么等效的created?
方法,但你可以把你的代码放在Permissions
模型中的after_create
回调中。如果你想保持一致,那么还有一个after_destroy
的回调。
另一种奇怪的方式是检查模型的created_at
时间是否与updated_at
时间相同。如果是这样,那么它已经创建,但尚未更新。
其实,在权限中,我应该使用a:has_many => MessageViews通过消息,依赖destory?不知道这是否会创建他们,虽然只是删除? – AnApprentice 2011-04-23 02:25:34