如何确定一个记录是否被创建/更新或删除



在我的rails应用中,我有以下模型:

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时间相同。

相关内容

  • 没有找到相关文章

最新更新