Railsで開発を行う際のTips
Rails バリデーションエラーメッセージの日本語化
Railsのバリデーションエラーメッセージは、デフォルトのままだと英語で表示されてしまう。
そこで、メッセージを日本語で表示できるように修正をしていく。
以下の記事を参考にした。
gemの追加
以下のライブラリを追加する。
gem 'rails-i18n'
ファイルに追記
以下のコードを設定ファイルに追記。
config.i18n.default_locale = :ja
カラム名を日本語表記にする
ja:
activerecord:
models:
picture_detail: 詳細画像
attributes:
picture_detail:
image1: 詳細画像
models:
post: 詳細画像
attributes:
post:
title: タイトル
detail: 釣行レポート
picture: タイトル画像
models:
user: ユーザ
attributes:
user:
name: 名前
email: メールアドレス
password: パスワード
以下のコードを追記。
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.yml').to_s]
unicorn_rails コマンドまとめ
EC2にデプロイする際にunicornに関するコマンドを忘れがちなので、メモとしてこの記事を残しておきます。
unicornの起動
$ unicorn_rails -c /var/www/rails/myapp(自分のアプリ名)/config/unicorn.conf.rb -D -E production
unicornの起動確認
$ 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が停止します。
$ kill 2460
Your Ruby version is 2.6.3, but your Gemfile specified 2.5.3の対処法
状況
ローカル開発環境でbundle installを実行しようとしたら以下のようなエラーが出ました。
Your Ruby version is 2.6.3, but your Gemfile specified 2.5.3
どうやら、開発環境で使われているrubyのバージョンと、Gemfileで指定しているrubyのバージョンが違うようです。
対処法
$ 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をインストールする。
gem 'dotenv-rails'
2 .envファイルを作成
環境変数を設定したいアプリケーションのGemfileなどが置いてあるルートディレクトリに .env ファイルを作成します。
AWS_ACCESS_KEY='***********'
API_KEY='*********'
DATABASE_PASSWORD='**********'
3 .gitigonreに.envを追加
.gitignoreファイルの中に.envファイルを記述しないと、Githubにpushしたときに、.envファイルも一緒に反映されてしまうので、忘れずに以下を追記。
# 下記を追記
.env
4 環境変数を呼び出す
viewやconfigファイルの中で、値を呼び出したい位置に設定した環境変数を記述します。
# 設定ファイルでの記述
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