4
我試圖取消保存(優雅地)has_many元素如果重複。這就是我的意思是:如何取消before_add關聯回調中的保存?
class AdmininstratorRole < ActiveRecord::Base
has_many :permissions, before_add: :avoid_repetition
def avoid_repetition(permission)
raise "Repeated Permission" if self.permissions.where(klass: permission.klass, action: permission.action).count > 0
end
end
如果它不會是一個相關的回調我可以返回false,並且將取消保存。但既然是一個相關的回調,我需要舉例說明取消保存,如解釋here。問題是我不知道如何從那個異常中優雅地恢復。
任何想法???