Rails6の学習・Railsの初期設定
初期ソースコードの生成
テストフレームワークを minitest ではなく RSpec を利用する。
$ rails new project_name -d postgresql --skip-test-unit
データベースのセットアップ
config/database.yml
を開き、Docker のデータベースの情報を書きこむ。
データベースの作成実行。
$ bin/rails db:create
タイムゾーンとロケールの設定
config/application.rb
に設定を追加する。
config.time_zone = "Tokyo"
config.i18n.load_path += Dir[Rails.root.join("config", "locales", "**", "*.{rb,yml}").to_s]
config.i18n.default_locale = :ja
- タイムゾーンを東京に設定
- ロケールファイルのロードパスの設定
- デフォルトロケールを日本語に設定
ジェネレータの設定
不要なファイルをジェネレートしないようにする。
config/application.rb
config.generators do |g|
g.skip_routes true
g.helper false
g.assets false
g.test_framework :rspec
g.controller_specs false
g.view_specs false
end
テストフレームワークを RSpec に変更し、その他にジェネレートされるファイルをすべてオフに設定。
hostsファイルの設定
Rails アプリケーションに特定のホスト名でアクセスする設定。Mac側のhostsファイルに追加する。
127.0.0.1 example.com hoge.example.com
ドメインでRailsアプリケーションの表示内容を切り替えるため。
Blocked Hosts の設定
ブラウザが Rails アプリケーションにアクセスする際に使用できるホスト名(ドメイン名)を制限する機能。デフォルトではlocalhostのみが許可されている。
config/initializers
ディレクトに blocked_hosts.rb
(わかりやすければファイル名はなんでもいい)に以下の内容を記述。
Rails.application.configure do
config.hosts << "example.com"
config.hosts << "hoge.example.com"
end
ホスト名の制限が不要な場合は config.hosts = nil
とする。
web-consoleの設定
デフォルトでは 127.0.0.1
からのアクセスしか受け付けない。Docker を経由してアクセスするので config/environments/development.rb
に以下を追記。
config.web_console.whitellisted_ips = [ "172.16.0.0/12" ]
172.16.0.0/12
は 172.16.0.0
から 172.31.255.255
までのアドレス範囲を示す。
アプリケーションの起動
$ bin/rails s -b 0.0.0.0
-b
は Rails サーバーが応答する IP アドレスを指定するオプション。デフォルトは 127.0.0.1
であり、Docker越しにアクセスできない。-b 0.0.0.0
とすることですべてのIPアドレスからアクセスが可能になる。
Discussion