我正在使用Rails 5的關聯回調。我在文檔中看到,如果你想中止從關聯中刪除對象,你必須拋出異常:before_remove中止刪除崩潰服務器時拋出異常
如果before_add回調引發異常,則該對象不會被添加到集合中。同樣,如果before_remove回調引發異常,則該對象不會從集合中移除。
我這樣做正是而是服務器與崩潰:
UncaughtThrowError (uncaught throw :abort)
這是我的代碼看起來像:
def can_remove_association(object)
return unless object.condition
errors[:base] << "Can't be removed."
throw(:abort)
end
任何線索是怎麼回事? throw(:abort)
正在避免被刪除的對象,但我得到了一個醜陋的500!
你確定'throw'是正確的?我從來沒有見過。我通常使用'raise' – Fallenhero
請參閱https://ruby-doc.org/core-2.4.0/Kernel.html#method-i-throw – Fallenhero
您是否可以使用throw解決它?我收到了同樣的錯誤。但我確定我在其他地方使用過它,而且我很笨,爲什麼它不在這裏工作。 – Aakanksha