ruby
1class Client < ApplicationRecord 2 after_rollback :identify 3 4 validates :defo_id, uniqueness: true 5 6 def random_uid 7 SecureRandom.alphanumeric(4).downcase 8 end 9 10 private 11 def identify 12 self.defo_id = random_uid 13 self.save 14 end 15 16 17end
上記のdefo_idのバリデーション、uniqueness: true
でバリデーションエラーが起きた時のみ、コールバックしたいのです。
このままだと、sqlエラーや他のバリデーションに引っかかった時などにも、コールバックしてしまうので。。。
after_rollbackにオプションをつけるイメージなのかなと予想するのですが、
やり方がわかりません。
なにか考えうる方法はありますか?
あなたの回答
tips
プレビュー