Rails 3 + ActiveAdmin + CanCan:如果父模型有子项,则阻止销毁

时间:2012-09-13 14:59:52

标签: ruby-on-rails activeadmin cancan

如果用户想要销毁父模型记录并且它有子项,我希望能够显示自定义错误消息。

或者如果记录没有孩子,可能会隐藏销毁按钮。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

在您的模型中放置类似这样的内容

class Parent < ActiveRecord:Base
  has_many :children

  before_destroy :check_children!

private       # <--- Bottom of model

  def check_children!
    unless childrens.empty?
      self.errors.messages[:children_present] = "Can't destroy parent cause children present!"
      false
    end
  end
end