deviseのメッセージが日本語化できなくて困っています。
認証が必要なアクションを作り、未認証状態でアクセスしたところ、Authorized users only.というように英語のエラーメッセージが返ってきてしまいます。
以下が、その再現です。
sh
1curl -X POST http://192.168.100.100:3000/api/schedules/ -d "body=hogehoge&user_id=-1" 2{"errors":["Authorized users only."]} # <= 日本語化したい
どうすれば日本語化できるかご教示ください。
自身が気づいた点としては、後述のdevise.ja.ymlで、Authorized users only.に対する日本語訳が無いのだと思います。この点についても何かご存知でしたらご教示ください。よろしくおねがいします。
なお、deviseの設定は以下のページを参考にしました。
まずこちらのページを参考にしてdeviseを導入しました。認証が必要なアクションには、以下のように before_action :authenticate_user! を付けました。
ruby
1class ApplicationController < ActionController::Base 2 before_action :authenticate_user! 3 4 ... 5 6end
また、こちらのページを参考にしてconfig/locale/devise.ja.ymlを所定のディレクトリに配置しました。config/application.rbも参考ページ通りです。
(追記)
自分はdeviseとdevise_token_authというgemを使っていたのですが、gemの実装の中に"Authorized users only."というエラーメッセージがベタ書きされてました。これを編集すれば、思い通りのメッセージになりました。
いじったファイルは以下です。
/usr/local/var/rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/devise_token_auth-0.1.39/lib/devise_token_auth/controllers/helpers.rb
テスト結果は以下です。
sh
1curl -X POST http://192.168.100.100:3000/api/schedules/ -d "year=2017&month=12&day=31&user_id=1" 2{"errors":["認証が必要です。"]}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。