1
3

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 3 years have passed since last update.

rails /config ディレクトリ 設定まとめ

Posted at

1. 概要

  • railsのいろんな設定について調てみようと思った
  • railsの/configディレクトリ以下を調べた内容をまとめる

参考資料:設定ファイルについて

2. /configディレクトリ以下の構成と意味

/config
├ /application.rb すべての環境で共通の設定
├ /environments 環境ごとの設定ファイルを格納
│ ├ /development.rb 開発環境固有
│ ├ /test.rb テスト環境固有
│ └ /production.rb 本番環境固有
├ /initializers 初期化処理やそれに関する設定情報
│ ├ /infiections.rb 単数形・複数形のルールを規定
│ ├ /mime_types.rb アプリで使用するファイルタイプ
│ ├ /secret_token.rb クッキーを署名とするためのトークン情報
│ └ /session_store.rb セッションを保存するための設定ファイル
├ /locales 国際化対応のためのリソースファイルを格納するディレクトリ
└ /database.yml データベースの設定

以下それぞれのファイルの詳細を記載

2.1. application.rb

タイムゾーンの設定や、デフォルトで使用する言語、アプリ起動時に読み込むディレクトリなどを指定

尚、以降で示すソースは以下の内容の間で設定することを前提とする

application.rb
module App
  class Application < Rails::Application
    ...
    #実際の設定がある場所
    ...
  end
end

2.1.1. アプリケーションで使用するタイムゾーン

アプリケーションの中で使用するタイムゾーンを設定
日本に合わせる場合は以下の設定を行う

application.rb
config.time_zone = 'Tokyo'

参考:タイムゾーンの設定

2.1.2. データベースの読み書きに使用するタイムゾーン

データベースの読み書きに使用するタイムゾーンがあるので設定
日本に合わせる場合は以下の設定を行う
デフォルトはutf(協定世界時)1

application.rb
config.active_record.default_timezone = :local

2.1.3. 日本語化ファイルの読み込み設定

エラーメッセージやメールタイトルを他の言語に翻訳する設定
i18nというRailsのモジュールを使用して設定する

application.rb
config.i18n.default_locale = :ja #デフォルトは:en

2.1.4. 自動読込パスの設定

Railsでは、Linuxの$PATHのような自動読込パス$LOAD_PATHを設定できる
これはRails6から組み込まれたZeitweik(ツァイトベルク)というオートロードシステムで実現される
Zeitweikを有効にするには以下を設定

application.rb
config.load_defaults 6.0 #Zeitweilモード有効
config.add_autoload_paths_to_load_path = false #Zeitweilモード有効の時falseが推奨

参考:application.rbの初期設定

2.2. /environments

環境固有の設定をする際にここに環境名.rbというファイルを作成する
環境固有の設定については省略

参考:railsでproduction起動の備忘録 production環境の設定
参考2:development? production? 開発環境ごとに処理を切り分けたい時 環境を追加するときの方法。尚、環境ごとの設定の具体例についてはない模様

2.3. /database.yml

データベースの環境ごと(development,test,production)の設定を行える
YAML形式で記述する
以下MySQLでの設定例
YAML形式の記法は別途解説

database.yml

common: &common #共通項をcommonとしてまとめる
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 5

development:
  <<: *common
  database: mysql_development
  username: root
  password:
  host: localhost

test:
  <<: *common
  database: mysql_test
  username: root
  password:
  host: localhost

production:
  <<: *common
  database: mysql_production
  username: root
  password:
  host: localhost

参考:MySQL用のデータベース設定ファイル
参考2:YAML/共通部分の切り出し

  1. 国際原子時 (TAI) に由来する原子時系の時刻で、UT1世界時に同調するべく調整された基準時刻 参考:Wikipedia/協定世界時

1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?