【Rails】エラーメッセージの日本語化
ゴッドフィールド面白いですね。
さて、今回はRailsでのエラーメッセージの日本語化です。
Railsのデフォルトでは、エラーメッセージは英語で表示されます。
対応
Gemfileに以下を追加し、bundle installする
gem 'rails-il8n'
config/application.rb
のclass Application
内で以下を設定する
config.il18n.default_locale = :ja
config/locales
に以下のファイルを作成する
ja.yml
ja.yml
を以下のとおり設定し、日本語化
以下はUserモデルを日本語化対象とした場合
ja: activerecord: attributes: user: name: ユーザー名 email: メールアドレス password: パスワード
ymlファイルの変更になるのでインデントには気をつけましょう。
上記の対応を行うことで恐らくエラーメッセージが日本語化されると思われます。
また、各バリデーションに対応するエラーメッセージも設定可能です。
【Rails】renderが効かない!何故だ!
何故なんでしょうね
結論
form_with
のlocal
オプションをtrueにしてなかったのが原因でした。
どうやら、local:true
を指定しないとajax通信が発生するとのこと。
元々form_tag
でやっていたのですが、非推奨だということを知り、form_with
にしたら悲惨なことに。
まあええわ。
続・ActiveRecord(Select編)
おはようございます。
ActiveRecordでSelectする際の現時点でのまとめです。
find_by
find_by
の引数で指定した条件でヒットした最初の1件を返す。
1件だけ取得ではなくて条件にヒットした最初の1件を返す。
普通に1件だけ取得だと勘違いしていました。
where
条件にマッチしたデータを取得。
SQLのWHERE句のこと?
NOTやANDもセットできるらしいけど現状まだ必要に迫られていないのでこのあたりで。
現状必要となっているのがこのあたりなので、まとめはおわり。
has_secure_password使用時にエラー発生
「has_secure_passwordを使ってパスワードハッシュ化するぞ~」とウキウキだったのも束の間、以下のエラーが発生しました。
cannot load such file --bcrypt
なんじゃこりゃ!と調べてみると同じ事象の方が結構いらっしゃるらしいですね。
どうやらGemfileに指定したbcryptのバージョン指定が古かったのが原因っぽかったです。
なので、
1. gem uninstall bcrypt
2. gem uninstall bcrypt-ruby
3. gem install bcrypt --platform=ruby
4. Gemfileで指定したbcryptを3.1.11
にし、bundle install
を実行
最後にサーバーを再起動することで問題なく動作することを確認できました。
備忘録備忘録
ActiveRecordを使ってみた!
タイトルがYoutuberっぽいですね。
備忘録です。
ActiveRecordの詳しい説明はQiitaとかの記事見たほうがいいので、ここでは説明しません。
使ってみた感想を書いていきます。とは言っても初心者レベルの知識しかないので浅い内容になりますが・・・
INSERTがかんたん!
通常SQLを記述する場合、以下のようになると思います
INSERT INTO HogeTable VALUES (name: hoge)
ActiveRecordを使うと以下のように書けます
hoge = Hoge.new(name: 'hoge') hoge.save
プログラムを書くようにインスタンス化して使えるので直感的で分かりやすい。素晴らしいです。
総括
するほではないです。INSERTが楽で感動です。 これから色々と作り込んでいくのでそのときに覚えればいいかな。
以上。