restrict_with_exceptionを日本語化する方法

けっきょくうまくいかず、restrict_with_errorの方を使いました。

途中まではできたんですが、子モデルを日本語化できなかったです。悔しい!

途中経過を残しておきます。

ActiveRecordの該当メソッドをオーバーライドすることでいけました。

config/initializers/monkey_paches/delete_restriction_error.rb

module ActiveRecord
class DeleteRestrictionError
def initialize(name = nil)
if name
super("#{name}が存在しているため削除できません")
else
super("Delete restriction error.")
end
end
end
end

しかしこのnameの部分をいろいろymlファイルで日本語化しようと試みたのですが、だめでした。

8/31追記

super(I18n.t(name.to_s.singularize, scope: 'activerecord.models') + "が存在しているため削除できません")

このコードでテーブル名も日本語化することができます。教えていただいた方、ありがとうございました!

restrict_with_errorの日本語化はymlファイルに記述するだけでいけます。

  activerecord:
errors:
messages:
restrict_dependent_destroy:
many: "%{record}が存在しているので削除できません"
attributes:
user:
users: ユーザー 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です