最好的方法是检查模型关系是否正在另一个模型中使用,以防止它被破坏从而创建孤儿。
我有一张票和一张票的状态模型。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/