【发布时间】:2017-01-19 13:30:25
【问题描述】:
我正在使用 Rails 5 的关联回调。我在文档中读到,如果要中止从关联中删除对象,则必须抛出异常:
如果 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 -
你能用 throw 解决它吗?我遇到了同样的错误。但我确定我已经在其他地方使用过它,我不知道为什么它在这里不起作用。
标签: ruby-on-rails activerecord rails-activerecord ruby-on-rails-5