0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Ruby on Rails] エラーメッセージの表示方法

0
Last updated at Posted at 2020-12-19

バリデーションを定義する

モデル内で定義します。

class User < ApplicationRecord
  validates :name, {presence: true}
  validates :email, {presence: true}
end

上記では、nameとemailの空の投稿を制限しました。

viewでエラーメッセージを表示する

エラーメッセージはエラーが発生すると、 error.full_message内に配列で入ります。

<% if @user.errors.any? %>
  <% @user.errors.full_messages.each do |message| %>
    <%= message %>
  <% end %>  
<% end %>

@user のエラーがあった場合、 @user.errors.full_messages をすべて出力します。

エラーメッセージを日本語にする

エラーメッセージはデフォルトでは英語になっているので日本語化しましょう。

Gem file に追記

Gem file に以下を追加し bundle install してください。

 gem 'rails-i18n'

config/application.rb に追記

config/application.rb に以下を追加し、サーバーを再起動してください。

config.i18n.default_locale = :ja

ユーザーカラムの日本語化

このままでは、以下のようにエラーメッセージの value 部分が日本語化されていません。

["nameを入力してください"]

config/locales/models/ に、 ja.yml というファイルを作成します。
ja.yml のファイルに以下を追記します。

ja:
  activerecord:
    
    attributes:
      user:
        name:名前
       email:メール

最後に config/application.rb にこのymlファイルの読み込む一文を追記します。

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.yml').to_s]

完成です。

["名前を入力してください"]
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?