BETA

Ruby on Rails 事始め

投稿日:2019-02-28
最終更新:2019-02-28

自己紹介

最初の記事なので簡単に自己紹介を。

普段、仕事ではサーバー構築などのインフラ周りをメインにしています。

Windows、Linux(主に Cent OS)のサーバー構築から、
ミドルウェアのインストール、OSS の導入、運用もやれば、
ケーブリングからL3スイッチへのコンフィグ投入など、
低レイヤーの分野の仕事もやってます。

プログラミングも修行中でして、主に Ruby on Rails で開発しています。

得意分野は持ちつつも、いろんなことを浅く幅広くこなすという感じです。
良く言えばジェネラリスト、悪く言えば器用貧乏でしょうか。

アウトプットって大事だよなあとは思いつつも、本業がプログラマではないので、
Qiita への投稿は心理的なハードルがやや高めでした。
(Infrastructure as Code の記事を下書きしましたが、クオリティが・・・)
ふと、Qrunch に登録していたことを思い出して、今に至ります。

さて、初回は修行中の Ruby on Rails の rails new について書こうと思います。
あ、ちなみに開発環境は Windows を想定しています。

よくある rails new

rails new は新規にRails プロジェクトを作成するためのコマンドですが、
チュートリアルや様々な技術記事の中でも、↓のような感じでフォルダを作ってその中で、
rails new すると思います。

mkdir rails_sample  
cd .\rails_sample  
rails new hello-app

しかし、この方法だと Gem がシステムにインストールされてしまい、他のプロジェクトへの影響も出てしまいます。

で、どうする?

bundler を使って、プロジェクトで使う Gem はそのプロジェクトだけで使われるようにして、他のプロジェクトには影響を与えないようにします。
まずは、bundler をインストールしましょう。

gem install bundler

その後、プロジェクトのフォルダを作り bundle init します。

mkdir hello-app  
cd .\hello-app  
bundle init

Gemfile が生成されるので、rails のコメントアウトを外します。

# frozen_string_literal: true  
source "https://rubygems.org"  

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

gem "rails"

ここまでできたら、次は rails を↓のコマンドでインストールします。

bundle install --path vendor/bundle

このコマンド実行以降は bundle install だけで、自動的にそのプロジェクトの vendor/bundle の配下に Gem がインストールされます。
ここまでできたら次は↓のようにrails newします。

bundle exec rails new .

rails newの後ろの「.」はカレントディレクトリにプロジェクトのファイルを展開することを意味します。
また、vendor/bundle にインストールされた Rails は、 Railsコマンドを実行する際に、bundle exec とつけてあげる必要があります。

rails server # NG  
bundle exec rails server # OK  

rails db:migrate # NG  
bundle exec rails db:migrate # OK

これでシステムの Gem をクリーンな状態のまま、プロジェクト間で影響を与えることなく、
Gem をインストールすることができました。

参考記事

新規Railsプロジェクトの作成手順まとめ

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@toyocyの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!