Railsでのプロジェクトの作成
Ruby on Railsというフレームワークを使用したアプリケーションを作成する際に、どういった手順でコマンドを入力して行ったか毎回忘れがちなので、曖昧理解なまま当たり前にやっていることも含め、色々と調べながら書き残していくことにしました。
Railsプロジェクトの作成
% rails new APP_PATH [option] % rails new {アプリの名前} {オプション} 例) % rails new app-name
当初はアプリの名前と聞いてもよく理解できなかったですが、とりあえず起こることはapp-name
というディレクトリが作成され、railsでアプリを作成するのに必要なファイルなどがそのディレクトリの中に生成されるということ。
オプションについては後述。
参考にさせていただいたこちらの記事ではシステム側のgemに入れるのではなく別に格納した方がいいという旨の記事を見かけました。
自分はvendor/bundle
指定をプロジェクトディレクトリ毎に行ったことはないので、基本的にインストールされたgemはシステム側に入っていたのですね。
因みに使用していなくてもnewした時点でvendorディレクトリは生成されているようです。
この辺りのキーワードで調べれば細かいことを知ることができそうですが...今はいいかな😅
この方法では以降のrailsコマンドはbundle exec
を介して呼び出しています。
% bundle exec rails new . -B
newの後にアプリケーションディレクトリ名ではなく.
を記述することで、先ほどの参考記事のように、gemの設定も含めて作成したディレクトリに
そのままrailsのアプリケーションのファイルを生成してくれるようです。
-B
もしくは--skip-bundle
の部分は後述するオプション。これを書かないとbundle install
が実行されてしまい、Ruby環境にgemがインストールされてしまう。システム側に入れない意図を考えると、こちらの方法ではこのオプションは必須っぽい。
プロジェクト作成時のオプション
プロジェクトを作成する際にはコマンドにオプションを記述することで、使用するデータベースを決めることができる。
また、検索するまで知りませんでしたが、予めturbolinks
を切る方法やテストで使用するデフォルトのgemも切り替えできるようです。
% rails new -h
でヘルプを表示し、オプションで使用できるコマンドが確認できます。
とりあえずザッと見てよく使いそうなオプションを書いてみました。
-d DATABASE
もしくは--database=DATABASE
DATABASE
には使用するデータベース名を指定。自分はよくmysqlを使うので-d mysql
のように書く。指定なしの場合、Railsのデフォルトデータベースsqliteが指定される(後で変更可能)。--skip-turbolinks
turbolinksをオフにすることができる。jQueryを使う時にハマったことが多かったので、入れることがあるかも。--skip-test
railsではデータベース同様にテストもデフォルトのものが用意されており、Minitestというテストが生成される。自分はRSpecを使うことが多いので、生成しなくても良い時には記述した方が良い。-B
もしくは--skip-bundle
上で少し触れた通り、rails newの際にbundle installを行わないようにする。
これについてはRails tutorialにも書いてあり、実際に% rails new
コマンドを打った時にrun bundle install
と出てくることから実行されることが分かると書かれている。--skip-coffee
coffeescriptを使うことがほぼないのでこれも入れてもいいのかも?
プロジェクトのバージョン指定
バージョンによってはそれまで使えたものがなくなっていたり、名前が変わっていたりしてエラーになることがあるので、指定しておいたほうが無難...だと思う。
バージョン指定をしない場合にはPCに入っているrailsバージョン(% rails -v
で確認可能)の最新のバージョンで生成される。
但し、上述のオプション-B
or--skip-bundle
の記述がない場合は、% rails new _5.2.3_
をのように指定していても、プロジェクト生成後にbundle install
が行われるため、PCの中にインストールされている最新バージョンが入ってしまうので注意する。
この場合は% rails new -B
でプロジェクトディレクトリ生成後
Gemfileのgem 'rails', '~>5.2.3'
を'= 5.2.3'
に書き換えてから% bundle install
する
※ '~> 5.2.3'
のままの場合は5.2.3以上をインストールしてしまう。
% rails _5.2.3_ new myapp -B -d mysql --skip-turbolinks --skip-coffee
グローバルにgemが既に入りまくってしまっている自分はこんな感じのコマンドでプロジェクト作るのかな...って感じ。
ただ、--skip-coffee
はなくても-B
でbundle install
止めてる時点でGemfileのgem 'coffee-rails'をコメントアウトしてから手動bundle install
でも結果は同じのような。
参考にさせていただいた記事
Rails tutorial 1.3 最初のアプリケーション
Railsドキュメント オプションについて一通り説明あり。
新規Railsプロジェクトの作成手順まとめ
rails newするときによく使うオプションと、rails newした後によく行う設定
新規Railsプロジェクト作成時のコマンド
問題なく行われてしまっている自動生成コマンド一つ一つ、何が起きているかくらいは確認した方がいいですね❗️
正直、公式ドキュメントは単体だと取っつきづらいけど、どのように使っているか少し調べてから見てみるとそもそもの書き方などや説明が詳細に載っているので色々と知ることが出来ます。
したらな❗️ 👋