【发布时间】:2017-05-11 02:22:04
【问题描述】:
我目前正在做一个项目,在我们的项目中有 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
问题:如何查看是否有孩子在活动?我的代码有问题吗?
【问题讨论】:
-
报错了吗?
-
不返回任何错误但会继续删除。
-
尝试用
activities.present?替换除非块 -
所以我将删除除非activity.count == 0,然后使其成为activity.present?如果是,它会继续删除:(
-
对不起,我的意思是其他方式..检查答案..顺便说一下哪个轨道版本?
标签: ruby-on-rails ruby rails-admin