Rails のインストール : 小林研 Rails Tips (44)

はじめに

Rails Tips の 44 回目です。昨日は Ruby をインストールしただけですので、今日は Rails をインストールします。 railsguides.jp

3.1.3 Rails をインストールする

Rails は gem でインストールします。インストールしたところ、ver 7.1.2 がインストールされたようです。

$ gem install rails
Fetching minitest-5.21.1.gem
Successfully installed minitest-5.21.1
Successfully installed rails-7.1.2
Parsing documentation for minitest-5.21.1
Couldn't find file to include 'README.rdoc' from lib/minitest.rb
Installing ri documentation for minitest-5.21.1
Parsing documentation for rails-7.1.2
Done installing documentation for minitest, rails after 2 seconds
2 gems installed

コマンドでバージョンを確認してみると確かに 7.1.2 が入っていました。

$ rails --version
Rails 7.1.2

3.2 ブログアプリケーションを作成する

Rails ガイドでは何もパラメータをつけずに rails new blog としています。せっかくなので、今回はいくつかオプションをつけてみようと思っています。コラムに書かれているように rails new --help としてどんなオプションがあるのかを確認してみましょう。

Usage:
  rails new APP_PATH [options]

Options:
                 [--skip-namespace], [--no-skip-namespace]              # Skip namespace (affects only isolated engines)
                 [--skip-collision-check], [--no-skip-collision-check]  # Skip collision check
  -r,            [--ruby=PATH]                                          # Path to the Ruby binary of your choice
                                                                        # Default: /Users/hkob/.rbenv/versions/3.3.0/bin/ruby
  -n,            [--name=NAME]                                          # Name of the app
  -m,            [--template=TEMPLATE]                                  # Path to some application template (can be a filesystem path or URL)
  -d,            [--database=DATABASE]                                  # Preconfigure for selected database (options: mysql/trilogy/postgresql/sqlite3/oracle/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
                                                                        # Default: sqlite3
  -G,            [--skip-git], [--no-skip-git]                          # Skip git init, .gitignore and .gitattributes
                 [--skip-docker], [--no-skip-docker]                    # Skip Dockerfile, .dockerignore and bin/docker-entrypoint
                 [--skip-keeps], [--no-skip-keeps]                      # Skip source control .keep files
  -M,            [--skip-action-mailer], [--no-skip-action-mailer]      # Skip Action Mailer files
                 [--skip-action-mailbox], [--no-skip-action-mailbox]    # Skip Action Mailbox gem
                 [--skip-action-text], [--no-skip-action-text]          # Skip Action Text gem
  -O,            [--skip-active-record], [--no-skip-active-record]      # Skip Active Record files
                 [--skip-active-job], [--no-skip-active-job]            # Skip Active Job
                 [--skip-active-storage], [--no-skip-active-storage]    # Skip Active Storage files
  -C,            [--skip-action-cable], [--no-skip-action-cable]        # Skip Action Cable files
  -A,            [--skip-asset-pipeline], [--no-skip-asset-pipeline]    # Indicates when to generate skip asset pipeline
  -a,            [--asset-pipeline=ASSET_PIPELINE]                      # Choose your asset pipeline [options: sprockets (default), propshaft]
                                                                        # Default: sprockets
  -J, --skip-js, [--skip-javascript], [--no-skip-javascript]            # Skip JavaScript files
                 [--skip-hotwire], [--no-skip-hotwire]                  # Skip Hotwire integration
                 [--skip-jbuilder], [--no-skip-jbuilder]                # Skip jbuilder gem
  -T,            [--skip-test], [--no-skip-test]                        # Skip test files
                 [--skip-system-test], [--no-skip-system-test]          # Skip system test files
                 [--skip-bootsnap], [--no-skip-bootsnap]                # Skip bootsnap gem
                 [--skip-dev-gems], [--no-skip-dev-gems]                # Skip development gems (e.g., web-console)
                 [--dev], [--no-dev]                                    # Set up the application with Gemfile pointing to your Rails checkout
                 [--edge], [--no-edge]                                  # Set up the application with a Gemfile pointing to the 7-1-stable branch on the Rails repository
  --master,      [--main], [--no-main]                                  # Set up the application with Gemfile pointing to Rails repository main branch
                 [--rc=RC]                                              # Path to file containing extra configuration options for rails command
                 [--no-rc], [--no-no-rc]                                # Skip loading of extra configuration options from .railsrc file
                 [--api], [--no-api]                                    # Preconfigure smaller stack for API only apps
                 [--minimal], [--no-minimal]                            # Preconfigure a minimal rails app
  -j, --js,      [--javascript=JAVASCRIPT]                              # Choose JavaScript approach [options: importmap (default), bun, webpack, esbuild, rollup]
                                                                        # Default: importmap
  -c,            [--css=CSS]                                            # Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass] check https://github.com/rails/cssbundling-rails for more options
  -B,            [--skip-bundle], [--no-skip-bundle]                    # Don't run bundle install
                 [--skip-decrypted-diffs], [--no-skip-decrypted-diffs]  # Don't configure git to show decrypted diffs of encrypted credentials

Runtime options:
  -f, [--force]                    # Overwrite files that already exist
  -p, [--pretend], [--no-pretend]  # Run but do not make any changes
  -q, [--quiet], [--no-quiet]      # Suppress status output
  -s, [--skip], [--no-skip]        # Skip files that already exist

Rails options:
  -h, [--help], [--no-help]        # Show this help message and quit
  -v, [--version], [--no-version]  # Show Rails version number and quit

Description:
    The `rails new` command creates a new Rails application with a default
    directory structure and configuration at the path you specify.

    You can specify extra command-line arguments to be used every time
    `rails new` runs in the .railsrc configuration file in your home directory,
    or in $XDG_CONFIG_HOME/rails/railsrc if XDG_CONFIG_HOME is set.

    Note that the arguments specified in the .railsrc file don't affect the
    default values shown above in this help message.

    You can specify which version to use when creating a new rails application 
    using `rails _<version>_ new`.

Examples:
    `rails new ~/Code/Ruby/weblog`

    This generates a new Rails app in ~/Code/Ruby/weblog.

    `rails _<version>_ new weblog`

    This generates a new Rails app with the provided version in ./weblog.

    `rails new weblog --api`

    This generates a new Rails app in API mode in ./weblog.

    `rails new weblog --skip-action-mailer`

    This generates a new Rails app without Action Mailer in ./weblog.
    Any part of Rails can be skipped during app generation.

この中で以下のパラメータは修正したいと思っています。

  • -d: 小規模なアプリなら sqlite3 でもいいのですが、せっかくなのでここでは postgresql を使ってみましょう。たまに覚書を書いておかないとパスワードの設定方法などを忘れてしまうためです。
  • -a: Rails 6 までは sprockets でしたが、Rails 7 では propshaft が使えるようになっています。せっかくなのでこちらを試してみましょう。
  • -T: テストは rspec で実施するので、デフォルトのテストは使わないのでスキップすることにします。
  • --main: Git は最近は main branch を使っているのでこちらにします。
  • -B: Gemfile に最初にいろいろと追加するので、最初の bundle はスキップしましょう。

すぐに rails new をしたいところですが、今回 postgresql を使うことにしたので、3.1.2 の SQLite3 の代わりに postgresql の設定を先に実施しましょう。

おわりに

今回も Rails をインストールしただけで終わってしまいました。まず、データベースサーバの postgresql を Rails から使えるように設定することにします。なかなか Rails のネタに入れませんね。