【发布时间】:2014-05-09 05:26:33
【问题描述】:
我有以下代码:
def set_tags_from_string
list = self.tags_string.split(/ /)
list.each do |tag|
begin
self.partner_tags << PartnerTag.find_by(name: tag)
rescue
self.partner_tags << PartnerTag.create(name: tag)
end
end
end
当我尝试将PartnerTag 推入self.partner_tags 并且该标签尚不存在时,问题就出现了。控制台显示如下:
ActiveRecord::AssociationTypeMismatch: PartnerTag(#28272720) expected, got NilClass(#8501040)
我希望能够将此作为异常处理,但它仍然给出错误。我以前从未在 Ruby 中进行过异常处理,所以我想我可能会遗漏一些东西,但我遵循了 this 教程,但我没有看到我遗漏了什么。 Rails API 说它实际上是一个异常,最终继承自StandardError。 The Ruby documentation 说救援子句应该处理所有StandardErrors,所以我不知道我做错了什么。
【问题讨论】:
标签: ruby-on-rails ruby exception activerecord exception-handling