エラーメッセージ自体ではなく、検証エラーの翻訳キーをデータベースに保存したくない状況があります。次の状況を想像してください。
class Car < ActiveRecord::Base
validates_presence_of :year, :fuel
end
car = Car.new(:fuel => 'Diesel')
car.save!
#=> ActiveRecord::RecordInvalid
今私が電話した場合:
car.errors
#=> :year=>["can't be blank"]
翻訳されたエラー メッセージが表示されます。
代わりに、これを生成する翻訳キーを抽出したいと思います (この場合は、のようなものになると思いますerrors.messages.blank
)。別のモデルでデータベースに保存できるようにします。たとえばFailedCar
、後で I18n カスタマイズされたフォームを生成できます。ビューで不足している情報を手動で入力します。
アップデート
私がフックする必要があるのはこの方法だと思います。キーと返されたオプションをフェッチして、後で翻訳を再度実行できるようにします。