Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-保存后-如何确定记录是否已创建/更新或删除_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails-保存后-如何确定记录是否已创建/更新或删除

Ruby on rails Rails-保存后-如何确定记录是否已创建/更新或删除,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的rails应用程序中,我有以下型号: Messages (id, title, content, project_id) MessageViews (id, message_id, view_status) Permissions (id, user_id, project_id) Projects (id, name) 每当将用户添加到包含现有消息的项目中时,我都希望为项目中的每条消息创建MessageView记录 同样,如果删除了用户的项目权限,我想删除与该项目消息关联的所有用户的M

在我的rails应用程序中,我有以下型号:

Messages (id, title, content, project_id)
MessageViews (id, message_id, view_status)
Permissions (id, user_id, project_id)
Projects (id, name)
每当将用户添加到包含现有消息的项目中时,我都希望为项目中的每条消息创建MessageView记录

同样,如果删除了用户的项目权限,我想删除与该项目消息关联的所有用户的MessageView

在我的权限模型中,到目前为止,我有:

  before_destroy :check_message_views

  private

  def check_message_views
      .....
  end
如何在check_message_视图中确定是否正在创建/更新或删除记录

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
型号不应该属于
权限
?然后你可以设置
:dependent=>:destroy
,一切都会自动运行

否则,您可以使用该方法

我认为没有任何等价的
创建方法
,但您可以将代码放在
权限
模型的回调中。如果你想保持一致,销毁后也会有一个
回调


另一种破解方法是检查模型在
时间创建的
是否与在
时间更新的
相同。如果是这样,那么它已经创建了,但还没有更新。

实际上,在权限中,我应该使用:has\u many=>messageview through Messages,Dependent destory吗?不确定这是否会创建它们,尽管只是删除?