如果我具有如下的Widget模型:
create_table "widgets", id: :serial, force: :cascade do |t|
t.string "name"
t.integer "quantity"
end
...如果quantity
为nil或零以外的值,如何防止销毁操作?我认为这是我应该在模型中而不是控制器中做的事情?
答案 0 :(得分:1)
我知道了:
class Widget < ApplicationRecord
before_destroy :ensure_quantity_blank
protected
def ensure_quantity_blank
if !self.quantity.blank?
errors.add(:quantity, "Cannot delete widget with a quantity")
throw(:abort)
end
end
end