1

在 before_create、before_update、before_destroy 方法上,我想做一个 if: 在多个约束上,例如

before_destroy :lock_quantity, if: [:processed, :quantity_changed]

所以如果它被处理了,数量就不会改变

(以防万一:)

def lock_quantity
  errors.add :quantity, "You must revert the row before changing quantity"
end

那么,是否可以有多个条件 if: ?

4

1 回答 1

2

所以,其实应该是这样的……

before_update :lock_quantity, if: [:processed, :quantity_changed?]

注意问号!

(以防万一:)

def lock_quantity
  errors.add :quantity, "You must revert the row before changing quantity"
  false
end

通过 false 停止保存

于 2012-09-21T15:05:37.910 回答