😸

Railsで開発を行う際のTips

2022/03/30に公開

Rails バリデーションエラーメッセージの日本語化

Railsのバリデーションエラーメッセージは、デフォルトのままだと英語で表示されてしまう。
そこで、メッセージを日本語で表示できるように修正をしていく。

以下の記事を参考にした。

Railsのバリデーションエラーのメッセージの日本語化

gemの追加

以下のライブラリを追加する。

Gemfile
gem 'rails-i18n'

ファイルに追記

以下のコードを設定ファイルに追記。

config/application.rb
config.i18n.default_locale = :ja

カラム名を日本語表記にする

config/locales/models/ja.yml
ja:
  activerecord:
    models:
      picture_detail: 詳細画像
    attributes:
      picture_detail:
        image1: 詳細画像

    models:
      post: 詳細画像
    attributes:
      post:
        title: タイトル
        detail: 釣行レポート
        picture: タイトル画像

    models:
      user: ユーザ
    attributes:
      user:
        name: 名前
        email: メールアドレス
        password: パスワード

以下のコードを追記。

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

unicorn_rails コマンドまとめ

EC2にデプロイする際にunicornに関するコマンドを忘れがちなので、メモとしてこの記事を残しておきます。

unicornの起動

terminal
$ unicorn_rails -c /var/www/rails/myapp(自分のアプリ名)/config/unicorn.conf.rb -D -E production

unicornの起動確認

terminal
$ ps -ef | grep unicorn | grep -v grep

上のコマンドを打って、次のようなログが出てきたら、無事起動できています。

takuya    2460     1  0  3月11 ?      00:00:04 unicorn_rails master -c /var/www/rails/myapp/config/unicorn.conf.rb -D -E production
takuya    2465  2460  0  3月11 ?      00:00:05 unicorn_rails worker[0] -c /var/www/rails/myapp/config/unicorn.conf.rb -D -E production
takuya    2467  2460  0  3月11 ?      00:00:04 unicorn_rails worker[1] -c /var/www/rails/myapp/config/unicorn.conf.rb -D -E production

unicornの停止

上のコマンドで出力されたログに書いてある数字を以下のように入力すると、unicornが停止します。

terminal
$ kill 2460

Your Ruby version is 2.6.3, but your Gemfile specified 2.5.3の対処法

状況

ローカル開発環境でbundle installを実行しようとしたら以下のようなエラーが出ました。

terminal
Your Ruby version is 2.6.3, but your Gemfile specified 2.5.3

どうやら、開発環境で使われているrubyのバージョンと、Gemfileで指定しているrubyのバージョンが違うようです。

対処法

terminal
$ source ~/.bash_profile

このコマンドを実行すると、

ruby -v
ruby 2.5.3p105 

rubyのバージョンが切り替わりました。

rubyのバージョンを切り替えた後に、bundle installを実行すると、うまく通りました。

Ruby on Railsで環境変数を設定する方法

railsで環境変数を導入する方法をまとめました。
環境変数はAWSのAccessKeyなどの機密情報をGithubに上げずにアプリで使用する際に必要になります。
Githubに機密情報をpushすると、悪用される危険性があるので、環境変数を使いこなし、AccessKeyなどの機密情報を適切に管理できるようになりましょう。

1 gemをインストールする。

Gemfile
 gem 'dotenv-rails'

2 .envファイルを作成

環境変数を設定したいアプリケーションのGemfileなどが置いてあるルートディレクトリに .env ファイルを作成します。

|.env|
 AWS_ACCESS_KEY='***********'
 API_KEY='*********'
 DATABASE_PASSWORD='**********'

3 .gitigonreに.envを追加

.gitignoreファイルの中に.envファイルを記述しないと、Githubにpushしたときに、.envファイルも一緒に反映されてしまうので、忘れずに以下を追記。

|.gitignore|
# 下記を追記
.env

4 環境変数を呼び出す

viewやconfigファイルの中で、値を呼び出したい位置に設定した環境変数を記述します。

sample.rb
 # 設定ファイルでの記述
 aws_access_key_id: ENV['AWS_ACCESS_KEY']
 # index.html.erbなどのviewでの記述
 <%= ENV['API_KEY'] %>
 # database.ymlでの記述
 password: ENV['DATABASE_PASSWORD']

最後に

railsを学習して間もない頃は、環境変数に対して苦手意識を持ってしまいがちですが、一度使い方を覚えてしまえばそこまで難しいものではありません。
また、私自身、AWSのAccesskeyを設定ファイルにベタ書きして、Githubに上げてしまいパニックになった経験(すぐにリポジトリを削除したため被害はなかった)があります。
特に初学者の方たち(私も含めて)は機密情報の取り扱いには環境変数を設定しましょう。

Discussion