最好的方法是检查模型关系是否正在另一个模型中使用,以防止它被破坏从而创建孤儿。
我有一张票和一张票的状态模型。TicketStatus属于Ticket。票务有很多票务状态。
如果已将ticketstatus分配给票证,我将无法删除它。我也想要一个错误信息。

最佳答案

最简单的回拨方式:

class TicketStatus < ActiveRecord::Base
  belongs_to :ticket
  before_destroy :check_ticket

  private

  def check_ticket
    if ticket != nil
      errors.add_to_base("cannot delete ticket status that has a ticket")
      return false
    end
  end
end

这会阻止它并给您一个错误。
希望这有帮助!

关于ruby-on-rails - Rails属于相关破坏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8675508/

10-14 02:51