0

オームでは、一意の属性を保存しようとすると、属性が一意でない場合にエラーが発生します。エラーを発生させる代わりに、単純に false を返す方法はありますか?

これは私が望むタイプのコードですが、ドメインが一意でない場合はエラーが発生するため、else句に到達することはありません。

domain = Domain.new(:domain => root_domain)
if domain.save
    return domain
else
    return Domain.with(:domain => root_domain)
end
4

1 に答える 1

0

Rubyレスキューを使用するだけです:

begin
  domain.save
  domain
rescue Ohm::UniqueIndexViolation
  return false
end
于 2015-08-21T09:02:47.963 に答える