检查是否有依赖before_destroy rails admin ruby

时间:2017-05-11 02:22:05

标签: ruby-on-rails ruby rails-admin

我目前正在做一个项目,在我们的项目中有2个表/类ActivityType和Activity。同样在这个项目中,我们使用了名为rails admin的gem。如果活动中使用了活动类型,则管理员无法删除活动类型。

活动

class Activity < ApplicationRecord
  belongs_to :activity_type
end

活动类型

class ActivityType < ApplicationRecord
  has_many :activities
before_destroy :ensure_has_no_activity_type

  private

  def ensure_has_no_activity_type
      unless activities.count == 0
       errors[:base] << "cannot delete activity type that has activity"
       return false
    end
  end
end

问题:如何检查活动中是否有孩子?我的代码中有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这就是我的意思

def ensure_has_no_activity_type
  if activities.present?
    errors.add(:base, 'Cannot delete activity type that has activity')
    throw(:abort)
  end
end