Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4不能防止销毁_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 销毁前的Rails 4不能防止销毁

Ruby on rails 销毁前的Rails 4不能防止销毁,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,这里是我设置的一个简单的消息模型 class Message < ActiveRecord::Base validates_presence_of :user_id, :head, :text belongs_to :user has_many :receivers, class_name: MessageReceiver has_many :users, through: :receivers before_destroy :check_receivers

这里是我设置的一个简单的消息模型

class Message < ActiveRecord::Base

  validates_presence_of :user_id, :head, :text

  belongs_to :user

  has_many :receivers, class_name: MessageReceiver
  has_many :users, through: :receivers

  before_destroy :check_receivers

  private

  def check_receivers
    if self.receivers.empty?
      true
    else
      self.update(deleted: 1)
      false
    end
  end

end
class消息
直接调用时,
:check_receivers
方法按预期工作(我将其从资源的私有部分中删除),但不知何故,它并不能防止消息被破坏

我在这里做错什么了吗?

删除

before_destroy :check_receivers
试一试

has_many :receivers, class_name: MessageReceiver, dependent: :restrict_with_exception
它们是被销毁还是被删除<代码>销毁前
仅在
销毁
时触发。如果调用了
delete
,它将始终继续。