11
8

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 newする rails newのオプション

Last updated at Posted at 2021-05-25

image.png

はじめに

Railsのアプリケーションを作るときにやる**rails new**コマンド。
Railsに触れたことがある方は誰もが触ったことあるコマンドです。
rails newコマンドのオプションやRailsアプリケーションを作る流れをまとめます。

Rails newのオプション

rails newにはさまざまなオプションがあります。
rails new sample_app -d mysqlなどを入力したことがあるのではないでしょうか?
実際、どんなオプションがあるのかよくわかっていない方も多いと思うのでまとめます。

rails newのオプションは**rails new --help**と入力すると表示されます。

rails_newのオプション表示コマンド
% rails new --help
オプション一覧
Usage:
  rails new APP_PATH [options]

Options:
      [--skip-namespace], [--no-skip-namespace]              # Skip namespace (affects only isolated applications)
  -r, [--ruby=PATH]                                          # Path to the Ruby binary of your choice
                                                             # Default: /Users/moriokaryosuke/.rbenv/versions/2.6.5/bin/ruby
  -m, [--template=TEMPLATE]                                  # Path to some application template (can be a filesystem path or URL)
  -d, [--database=DATABASE]                                  # Preconfigure for selected database (options: mysql/postgresql/sqlite3/oracle/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
                                                             # Default: sqlite3
      [--skip-gemfile], [--no-skip-gemfile]                  # Don't create a Gemfile
  -G, [--skip-git], [--no-skip-git]                          # Skip .gitignore file
      [--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-storage], [--no-skip-active-storage]    # Skip Active Storage files
  -P, [--skip-puma], [--no-skip-puma]                        # Skip Puma related files
  -C, [--skip-action-cable], [--no-skip-action-cable]        # Skip Action Cable files
  -S, [--skip-sprockets], [--no-skip-sprockets]              # Skip Sprockets files
      [--skip-spring], [--no-skip-spring]                    # Don't install Spring application preloader
      [--skip-listen], [--no-skip-listen]                    # Don't generate configuration that depends on the listen gem
  -J, [--skip-javascript], [--no-skip-javascript]            # Skip JavaScript files
      [--skip-turbolinks], [--no-skip-turbolinks]            # Skip turbolinks 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
      [--dev], [--no-dev]                                    # Setup the application with Gemfile pointing to your Rails checkout
      [--edge], [--no-edge]                                  # Setup the application with Gemfile pointing to Rails repository
      [--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
  -B, [--skip-bundle], [--no-skip-bundle]                    # Don't run bundle install
  --webpacker, [--webpack=WEBPACK]                           # Preconfigure Webpack with a particular framework (options: react, vue, angular, elm, stimulus)
      [--skip-webpack-install], [--no-skip-webpack-install]  # Don't run Webpack install

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.

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

Example:
    rails new ~/Code/Ruby/weblog

    This generates a skeletal Rails installation in ~/Code/Ruby/weblog.

こんな感じで表示されます。


オプションまとめ

オプション省略形       オプションコマンド     説明                  
--skip-namespace, --no-skip-namespace 名前空間のスキップ(孤立したアプリケーションにのみ影響)
-r --ruby=PATH 任意のRubyバイナリへのパス指定
-m --template=TEMPLATE テンプレートのパス
-d --databese=DATABASE mysql/postgresql/sqlite3/oracle/frontbaseなどのデータベースの指定
--skip-gemfile,--no-skip-gemfile Gemfileを作成しない
-G --skip-git,--no-skip-git .gitignoreを組み込まない
--skip-keeps,--no-sikip-keeps .keepを組み込まない
-M --skip-action-mailer,--no-skip-action-mailer Action Mailer関連のファイルを作成しない
--skip-action-mailbox,--no-skip-active-mailbox gemのAction Mailboxを外す
       --skip-action-text,--no-skip-action-text gemのAction Textを外す
-O --skip-active-record,--no-skip-active-record Active Record関連のファイルを作成しない
--skip-active-storage,--no-skip-active-storage Active Storage関連のファイルを作成しない
-P --skip-puma,--no-skip-puma Puma関連のファイルを作成しない
-C --skip-action-cable,--no-skip-action-cable Action Cable関連のファイルを作成しない
-S --skip-sprockets,--no-skip-sprockets Sprockets関連のファイルを作成しない
--skip-spring,--no-skip-spring Springのプレローダーをインストールしない
--skip-listen,--no-skip-listen gemのlistenの外す
-J --skip-javascript,--no-skip-javascript Javascript関連のファイルを作成しない
--skip-turbolinks,--no-skip-turbolinks gemのturbolinksを外す
-T --skip-test,--no-skip-test test関連ファイルを作成しない
--skip-test,--no-skip-system-test system test関連ファイルを作成しない
--skip-bootsnap,--no-skip-bootsnap gemのbootsnapを外す
--dev,--no-dev github リポジトリ上の自分のコードから作成
--edge,--no-edge github リポジトリ上の最新のコードから生成
rc=RC railsコマンドの追加設定オプションを含むファイルへのパス指定
--no-rc,--no-no-rc .railsrcファイルからの追加設定オプションの読み込みをしない
--api,--no-api APIモードでアプリケーションを作成する
-B --skip-bundle,--no-skip-bundle bundle installをしない
--webpacker --webpack=WEBPACK react/vue/angular/elm/stimulusなどのWebpackerで使うフレームワークを指定
--skip-webpack-install,--no-skip-webpack-install Webpackをインストールしない

**`rails new`にオプションをつけることで必要ではない機能を外すことができます。** **プロジェクトで必要じゃないものを外しましょう。**

--minimal

またrails6.1より--minimalという最低限のフレームワーク機能を持たせるオプションが追加されました。
--minimalと追加すると以下のフレームワーク機能がすべてスキップされます。

スキップされる機能

  • action_cable
  • action_mailbox
  • action_mailer
  • action_text
  • active_job
  • active_storage
  • bootsnap
  • jbuilder
  • spring
  • system_tests
  • turbolinks
  • webpack

Rails Newをする

色々なやり方があり、賛否両論あるかと思いますが、rails newしていきます。

プロジェクトディレクトの作成

プロジェクトディレクトリの作成
% mkdir qiita_app

プロジェクト名にするディレクトリを作成します。

rbenvのインストール

rbenvインストール
% brew update
% brew install rbenv ruby-build
% echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
% echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
% rbenv -v

rbenvをインストールされてない場合はインストールします。
rbenvはRubyをバージョンごとに管理でき、プロジェクトごとにバージョンの指定をすることができるツールです。

Rubyのバージョン指定

インストールされたRubyのバージョンを確認
% rbenv versions
system
  2.6.5
* 2.6.6 (set by /Users/ユーザー名/.rbenv/version)

インストールされているRubyのバージョンを確認します。

使用するRubyのバージョンを指定する
% rbenv local 2.6.6

使用したいrubyのバージョンを指定します。

bundle_init
% cd qiita_app
% bundle init

**bundle init**というコマンドを打ち、Gemfileを作成します。

Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# gem "rails"

Gemfileを開きます。
コメントアウトされている`# gem "rails"の#を消します。
これで最新のRuby on Railsがインストールできます。

railsのバージョン指定
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails", "6.0.0"

バージョン指定したい場合は横に記述します。

パスを指定してbundle installする

パスを指定することでプロジェクトごとにGemのバージョン指定をすることができます。
Gemはそれぞれのバージョンごとに依存している他のGemのバージョンが違うため、エラーになる場合があります。

pathを指定してbundle_install
% bundle install --path vendor/bundle

vendor/bundleを指定するのが一般的です。

ですが、Qiitaの記事 bundle install時に--path vendor/bundleを付ける必要性は本当にあるのか、もう一度よく考えてみようにあるように、する必要はないのかもです。

rails newする

Railsのプロジェクトを作成します。

rails_newの構文
% bundle exec rails new インストールしたいディレクトリ名 オプション

rails newの後にインストールしたいディレクトリ名、スペース空けてオプションを記述します。

% bundle exec rails new . -d mysql --skip-bundle --skip-test

カレントディレクトリで作成する場合は.になります。今回はデーターベースをmysql、テストはRspecを使うとしてテストファイルを作成しない設計にしました。

rails newの前につけている**bundle execですが、つけないとGemfile.lockに基づかないgemのバージョンを決められたり、不具合が発生する場合があるのでつけたほうが良いです。

bundle execとつけて実行すると,そのRailsプロジェクトのGemfileで指定された環境で実行する事ができるようになります。

image.png

以上です。よいRailsライフを。

オプションの情報お待ちしてます。

参考サイト

11
8
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
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?