オーバーライドされたエラーメッセージをカスタマイズするにはどうすればよいですか?パスワード変更時にエラーメッセージを上書きする方法
class PasswordsController < Devise::PasswordsController
def create
self.resource = resource_class.send_reset_password_instructions(params[resource_name])
if resource.errors.empty?
set_flash_message(:notice, :send_instructions) if is_navigational_format?
respond_with resource, :location => home_path
else
binding.pry
flash[:devise_password_error] = (resource.errors.map do |key, value|
value.capitalize
end).flatten.join('|')
redirect_to home_path and return
end
end
def edit
self.resource = resource_class.new
resource.reset_password_token = params[:reset_password_token]
end
end
resource.errorsこの方法で提供されていますが、それは、そのようなEmail not found
とEmail can't be blank
として、デフォルトのメッセージが含まれています。私はこのメッセージをカスタマイズする必要があります。私はユーザーモデルから:validatable
を削除しようとしましたが、カスタムバリデーターを追加しようとしましたが、これはDevice :: RegistrationsControllerから派生した私のカスタム登録コントローラーでのみ動作し、カスタムパスワードコントローラーでは動作しません。
解決策はありますか?
は、あなたがこの問題を解決しましたか? –
私はこれが古いことを知っていますが、より一般的でクリーンなアプローチについては、[この回答](http://stackoverflow.com/a/18578028/1964165)をチェックしてください。 – akhanubis