如何确保只删除最后一个孩子?

时间:2014-09-23 10:20:01

标签: ruby-on-rails ruby activerecord

在我的Rails 4应用中,invoice最多可以有3个reminders

如何确保用户只能删除每张发票的最后提醒?

例如,如果用户为发票创建了2个提醒,则只有第二个提醒应该是可删除的(确切地说具有较大id的提醒)。

如何实现这一目标?

感谢您的帮助。

class Reminder < ActiveRecord::Base

  belongs_to :invoice

  def deletable?
     ...
  end

end

1 个答案:

答案 0 :(得分:2)

简单的解决方案:

def deletable?
  self == invoice.reminders.last
end

但是,这不会处理在您检查提醒是否可删除的时间与实际删除之间添加提醒的情况。