[Mac][Ruby]Rails環境構築には、Railsプロジェクトの作り方にはコツがある!

 

 

なんと!9本の記事で詳しく丁寧に解説してるのだ!

 

こんにちは。ナガオカ(@boot_kt)です。

 

9本の記事でRails環境構築の解説をしています

この記事は9本目、Railsプロジェクトの作り方について解説してます

 

この記事のザックリした内容
◆対象読者

  • Railsの環境構築手順を知りたい人
  • Railsの環境構築で、なぜそれらをインストールするのか「理解」したい人
  • Homebrew?、rbenv?、Bundeler?、gem? ←これらの事がよく分からない人
  • オススメしません!! → 手っ取り早くRails環境構築手順を知りたい人
  • シェルコマンドを知っているのが望ましい
    シェルを知らなくても書いてる通りにやればいいけど、もしかしたら意味が分からなくなるかも・・・

 

 

 

事前説明

ここではRailsプロジェクトを作ります

Railsプロジェクトの作り方

 

1.まずはRailsプロジェクト用のディレクトリ(フォルダ)を作る

1-1.今回は、RailsTestフォルダを作って、その中に複数のプロジェクト用フォルダ(proj_aとかproj_bとか)を作ります

> mkdir ~/RailsTest
> cd    ~/RailsTest
> mkdir proj_a
> cd    proj_a

 

1-2.現状は当然何も入ってないのを、一応見ておく

> ls -la
total 0
drwxr-xr-x  2 username  staff   68  8 26 07:10 .
drwxr-xr-x  4 username  staff  136  8 26 07:10 ..

2.ついにっ! Rubyのバージョンを指定する瞬間がキターーーーーーッ!!!

2-1.Rubyのバージョンを指定

> rbenv local 2.4.1

globalじゃなくてlocalなことに注意

 

2-2..ruby-versionというファイルができる

> ls -la
total 8
drwxr-xr-x  3 username  staff  102  8 26 07:11 .
drwxr-xr-x  4 username  staff  136  8 26 07:10 ..
-rw-r--r--  1 username  staff    6  8 26 07:11 .ruby-version

 

2-3.中身見るとこんな感じ

2-1.rbenv local 2.4.1で指定したバージョンが書かれてある

> more .ruby-version
2.4.1

 

3.Bundlerの出番だぜっ!

3-1.bundle initGemfileファイルができる

> bundle init
Writing new Gemfile to /Users/username/RailsTest/proj_a/Gemfile

 

3-2.こんな感じでGemfileファイルができてる

> ls -la
total 16
drwxr-xr-x  4 username  staff  136  8 26 07:25 .
drwxr-xr-x  4 username  staff  136  8 26 07:10 ..
-rw-r--r--  1 username  staff    6  8 26 07:06 .ruby-version
-rw-r--r--  1 username  staff  145  8 26 07:25 Gemfile

 

3-3.Gemfileの中身をそ~っと覗いて見てごらん

> more Gemfile
# frozen_string_literal: true
source "https://rubygems.org"

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

# gem "rails"
proj_a username$

 

3-4.Gemfileを編集

# gem "rails"

から# を消す

#はコメントなので、それを外すということは有効になるということ
viの場合、xが一文字削除

 

gem "rails", "5.0.5"

↑こんな感じでバージョンを書いても良い(てか、書こうズ!)

 

インストール可能なRailsバージョンの調べ方

  • rオプション:リモートドメインに制限
  • aオプション:全て表示
  • nオプション:正規表現で名前を一致させる
> gem query -ran rails

↑これでもいいけど、大量に出てくる

 

↓なのでこっちの打ち方がいいよ

> gem query -ran rails | grep '^rails ('
rails (5.1.3, 5.1.2, 5.1.1, 5.1.0, 5.0.5, 5.0.4, 5.0.3, 5.0.2, 5.0.1, 5.0.0.1, 5.0.0, 4.2.9, 4.2.8, 4.2.7.1, 4.2.7, 4.2.6, 4.2.5.2, 4.2.5.1, 4.2.5, 4.2.4, 4.2.3, 4.2.2, 4.2.1, 4.2.0, 4.1.16, 4.1.15, 4.1.14.2, 4.1.14.1, 4.1.14, 4.1.13, 4.1.12, 4.1.11, 4.1.10, 4.1.9, 4.1.8, 4.1.7.1, 4.1.7, 4.1.6, 4.1.5, 4.1.4, 4.1.3, 4.1.2, 4.1.1, 4.1.0, 4.0.13, 4.0.12, 4.0.11.1, 4.0.11, 4.0.10, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.5, 4.0.4, 4.0.3, 4.0.2, 4.0.1, 4.0.0, 3.2.22.5, 3.2.22.4, 3.2.22.3, 3.2.22.2, 3.2.22.1, 3.2.22, 3.2.21, 3.2.20, 3.2.19, 3.2.18, 3.2.17, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2.0, 3.1.12, 3.1.11, 3.1.10, 3.1.9, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.4, 3.1.3, 3.1.2, 3.1.1, 3.1.0, 3.0.20, 3.0.19, 3.0.18, 3.0.17, 3.0.16, 3.0.15, 3.0.14, 3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7, 3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)

4.ついにBundlerを使ってインストール開始だっ!!!

4-1.bundleコマンドでインストール!

vendor/bundleはフォルダ(ディレクトリ)を作ってそこにインストールするという指定
別にvendor/bundleじゃなくてもいいけど、これが推奨されてるンで、これに倣ってるといいでしょう

> bundle install --path=vendor/bundle
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 12.0.0
Installing rake 12.0.0
Fetching concurrent-ruby 1.0.5
Installing concurrent-ruby 1.0.5
Fetching i18n 0.8.6
Installing i18n 0.8.6
Fetching minitest 5.10.3
Installing minitest 5.10.3
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching builder 3.2.3
Installing builder 3.2.3
Fetching erubi 1.6.1
Installing erubi 1.6.1
Fetching mini_portile2 2.2.0
Installing mini_portile2 2.2.0
Fetching rack 2.0.3
Installing rack 2.0.3
Fetching nio4r 2.1.0
Installing nio4r 2.1.0 with native extensions
Fetching websocket-extensions 0.1.2
Installing websocket-extensions 0.1.2
Fetching mime-types-data 3.2016.0521
Installing mime-types-data 3.2016.0521
Fetching arel 8.0.0
Installing arel 8.0.0
Using bundler 1.15.4
Fetching method_source 0.8.2
Installing method_source 0.8.2
Fetching thor 0.20.0
Installing thor 0.20.0
Fetching tzinfo 1.2.3
Installing tzinfo 1.2.3
Fetching nokogiri 1.8.0
Installing nokogiri 1.8.0 with native extensions
Fetching rack-test 0.6.3
Installing rack-test 0.6.3
Fetching sprockets 3.7.1
Installing sprockets 3.7.1
Fetching websocket-driver 0.6.5
Installing websocket-driver 0.6.5 with native extensions
Fetching mime-types 3.1
Installing mime-types 3.1
Fetching activesupport 5.1.3
Installing activesupport 5.1.3
Fetching loofah 2.0.3
Installing loofah 2.0.3
Fetching mail 2.6.6
Installing mail 2.6.6
Fetching rails-dom-testing 2.0.3
Installing rails-dom-testing 2.0.3
Fetching globalid 0.4.0
Installing globalid 0.4.0
Fetching activemodel 5.1.3
Installing activemodel 5.1.3
Fetching rails-html-sanitizer 1.0.3
Installing rails-html-sanitizer 1.0.3
Fetching activejob 5.1.3
Installing activejob 5.1.3
Fetching activerecord 5.1.3
Installing activerecord 5.1.3
Fetching actionview 5.1.3
Installing actionview 5.1.3
Fetching actionpack 5.1.3
Installing actionpack 5.1.3
Fetching actioncable 5.1.3
Installing actioncable 5.1.3
Fetching actionmailer 5.1.3
Installing actionmailer 5.1.3
Fetching railties 5.1.3
Installing railties 5.1.3
Fetching sprockets-rails 3.2.0
Installing sprockets-rails 3.2.0
Fetching rails 5.1.3
Installing rails 5.1.3
Bundle complete! 1 Gemfile dependency, 38 gems now installed.
Bundled gems are installed into ./vendor/bundle.

 

4-2.Gemfile.lockvendorディレクトリができてるのを確認

> ls -la
total 24
drwxr-xr-x  7 username  staff   238  8 26 10:23 .
drwxr-xr-x  4 username  staff   136  8 26 10:18 ..
drwxr-xr-x  3 username  staff   102  8 26 10:21 .bundle
-rw-r--r--  1 username  staff     6  8 26 10:19 .ruby-version
-rw-r--r--  1 username  staff   143  8 26 10:20 Gemfile
-rw-r--r--  1 username  staff  2677  8 26 10:23 Gemfile.lock
drwxr-xr-x  3 username  staff   102  8 26 10:21 vendor

 

vendorディレクトリの中にRailsとか入ってまっせぇ~

> ls -la vendor/bundle/ruby/2.4.0/gems/

 

4-3.RubyとRailsのバージョンを、一応確認しておこう

↓Rubyのバージョンを確認

> ruby -v

↓Railsの確認(bundle execというのを付けること!)

> bundle exec rails -v

 

bundle execを書くのがメンドウなんすけど。。。
bundle exec を常に書くのは面倒です
なので、bundle execを書かなくてもよくなる方法はあります

 

・・・が、
その方法は紹介しません

 

bundle execを書くのは理由があります
まずはそれを体に染み込ませる必要があると、僕は思っています

 

体に染み込んだ後で、
bundle execを書くのが面倒になって、
それから、書かなくてもいい方法を調べるのがいいです!!

 

一気に段階を進めすぎると、結局何も理解できていないままになっちゃいます!

 

5.やっと、Railsアプリを作成するゼヨ!

ついにきたっ!!

Railsアプリの夜明けは近いゼヨ!

 

5-1.Railsアプリを作るには、最初にこれを打って打って撃ちまくるんだっっ!!!

※Railsアプリ名をMyAppにしてるけど、好きな名前でいいよ

> bundle exec rails new MyApp

 

6.Railsアプリを起動する

もうここまで来れば後は起動するだけ

Railsは生成すれば何も書かなくてもとりあえず動くんだよぉ~

まずは動かそうぜ!

 

6-1.Railsアプリ(MyApp)の中に入る

僕はこれをよく忘れる(笑)
いきなり6-2.の手順をやって、「あれ?なんで動かへんの?」ってなる
> cd MyApp

 

6-2.さぁ、いよいよRailsが起動するよ~ん♪

> rails server

 

6-3.ChromeとかFireFoxとかVivaldiとかのWebブラウザでアクセスしやがれっ!

localhost:3000

↓こんな画面が表示される(Railsのバージョンが5の場合)

 

これで君も今日からRailsエンジニアだっ!!!

 

Railsの作り方自体は別途お勉強しようね

 

 

広告




 

 


 

Rubyプログラミングのレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

 

参考書籍

19 件のコメント

  • こんにちわ。とても参考になる内容です、ありがとうございます。
    PC初心者丸出しの質問で申し訳ないのですが、制作したGemfileのシャープを外すというのができません、、、。
    書かれている通り、また、しらべたところxの入力によって可能なようですが、それもうまくいきません。
    ただmore Gemfileで出てきた # gem “rails”の上で入力するのでは意味がないのですよね?申し訳ありませんが、またもう少しここの手順について詳細に教えていただけるとありがたいです。

    • 『1.まずはRailsプロジェクト用のディレクトリ(フォルダ)を作る』で作ったフォルダの中にGemfileがありますので、Visual Stuio CodeとかAtomとかmiとかのテキストエディタで開いて#を外せば良いですよ。

  • Linux使いだったので、Windowsでまごまごしてました。
    すごく丁寧で、とても助かりました!!!

  • なんとか構築できましたので、このまま勉強して行きたいと思います。お世話になりました。

    • コメント見るのが遅くなってすみませんでした。

      解決したようで何よりです。
      また分からないことがあればコメントください。

  • とても勉強になります。
    一つつまづいた点がありましたので質問させていただきます。

    $ bundle install –path=vendor/bundle
    を実行すると
    ________ ________________________________________________
    An error occurred while installing nokogiri (1.8.2), and Bundler cannot
    continue.
    Make sure that `gem install nokogiri -v ‘1.8.2’` succeeds before bundling.
    ________ ________________________________________________
    このようなエラーが表示されうまくインストールされません。
    エラーに記載されている以下のコマンドを入力しても解決されませんでした。
    $ gem install nokogiri -v ‘1.8.2’

    このような場合はどのように対処したらよいでしょうか?

  • 質問です。

    最後にrails newコマンドでエラーがでてしまうんですが、この記事の(9本分)一番最初に戻って最初からやり直すにはどうしたらいいでしょうか?

    • 1.どういうエラーですか?(エラーメッセージとか、操作手順とか)
      2.何をインストールしたとか、○○と○○の記事の手順通りにやったとかやってないとか

      こういう感じの情報を書いていただければ分かるかもしれませんよ。
      「エラーが出る」だけでは何が悪そうみたいな当たりをつけられないので、ぜひ情報を書いてみてください。

  • こんばんは。
    初めてrailsの環境を作るという事で今回こちらのサイトで環境構築をさせて頂きました。
    大変分かりやすかったです。ありがとうございました。

    一点質問があります。
    6-2のrails serverコマンド でサーバーを立ち上げる箇所ですが、表記通りrails sever コマンド を打ち込んだところ下記のメッセージが表示されサーバーを立ち上げることが出来ませんでした。

    Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

    You can then rerun your “rails” command.

    そこで、rails serverコマンドの前にbundle execをつけてbundle exec rails serverと打ったところサーバーが立ちあがりlocalhost:3000に接続する事が出来ました。

    rails serverで立ち上がらなかったのはrailsのバージョンの違いによるものでしょうか?
    それともbundlerでrailsをインストールしたのでbundle execと付けなければいけないのでしょうか?

    私のバージョンは下記になります。
    ruby:2.5.1
    rails:5.2.0

    お時間がありましたら、どうぞ宜しくお願いします。

    • rbenvとかbundlerとかが正しくインストールされているとすれば、この記事で示している手順で問題ありません。(と言うか、rbenvとかbundlerとかが正しくインストールされていることが前提でこの記事は成立しています)

      ruby:2.5.1、rails:5.2.0でやってみましたところ、エラーは出ていませんし、問題なく実行できました。

      で、問題があるとすれば、元々macにインストールされているrubyが使用されているとか、あとで(bundlerを使わずに)インストールしたrailsが使用されているとかが考えられます。
      ※この記事で要所要所にrubyやrailsのバージョンを確認するコマンドを入れてるので、考えにくいですけど。

      一度rubyやrailsを別のバージョンにして確認してもらえませんか?
      それでも同じようなエラーが出るかどうかまた教えてください。

  • こんにちは。
    とても分かりやすく初心者ですがとても参考にさせて頂いています。
    質問なのですが、「2-1.Rubyのバージョンを指定」で指定したのですが、
    ruby-versionというファイルがでてきません。何か思い当たる点などあれば教えていただきたいです。

    rubyはバージョン2.5.1をインストールしたつもりですが、rbenv -vと打つとrbenv 1.1.1と表示されます。さらに、ruby -vと打つとインストールした覚えが無いバージョンのruby(多分初期から入っているruby?)が表示されます。これが原因でしょうか?

    • > rubyはバージョン2.5.1をインストールしたつもりですが、rbenv -vと打つとrbenv 1.1.1と表示されます。

      「rbenv -v」はrbenv自体のバージョンですので正常です。

      > さらに、ruby -vと打つとインストールした覚えが無いバージョンのruby(多分初期から入っているruby?)が表示されます。これが原因でしょうか?

      「which ruby」と「echo $PATH」で出てきた結果を教えてください。

    • 「.ruby-version」(←ピリオドが先頭についているのに注意)というファイルができるはずです。
      ターミナルで「ls -la」と打ってみてください。

      先頭に「.」がついているファイルは不可視ファイルと言って、基本的には見えません。

      ターミナルなら「ls -la」もしくは「ls -a」で見えますが、Finderだと見えません。
      ※Finderで不可視ファイルを見る方法はググってください
      ※私はFunterというツールを使っています

      「ls -la」でも見えないならまたコメントください。

  • 返信ありがとうございます。

    「which ruby」→「/usr/bin/ruby」 
    「echo $PATH」→「/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin」
    と出ます。

    「ls -la」と打つと.ruby-versionと出てきました。

    • > 「ls -la」と打つと.ruby-versionと出てきました。

      であれば、最初のご質問が「ruby-versionというファイルがでてきません。」とありましたので、
      『2-2..ruby-versionというファイルができる』から続行できるのではないでしょうか?

      > ruby -vと打つとインストールした覚えが無いバージョンのruby

      「echo $PATH」で出てくる量が少ない気がします
      「which ruby」で出てきたものは、macに初期からインストールされているものでしょう。
      この場合、環境変数PATHの設定が足りていないと思います。

      .bash_profileに「eval “$(rbenv init -)”」書いてますか?

      ↓参考
      https://gabekore.org/mac-ruby-rails-rbenv

      本記事は、「https://gabekore.org/mac-ruby-rails-overview」から順番に読んで一つずつインストール及び設定してくださいね。

  • macbook楽しい へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。