🗂

Rails6の学習・Railsの初期設定

2022/11/05に公開

初期ソースコードの生成

テストフレームワークを 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/12172.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