Help us understand the problem. What is going on with this article?

Before Rails Tutorial1章 環境構築

本投稿は大学講義資料でもあり、Rubyの基礎は理解しているが、rails tutorialで躓く読者を対象としています。
1章:環境構築
2章:Scaffold を用いた高速なアプリケーション構築 及び MVCの理解
3章:Scaffold を用いない開発方法 及び 応用
4章:ログイン機能
5章:bootstrap を用いたデザイン

環境
ruby 2.5.6
rails 5.2.3
にて、学習をすすめていきます。

講義において、PCをもっておらずスマホで開発を行いたい学生はクラウド開発も可能です。
その場合 Paiza https://paiza.cloud/ja/ruby-on-rails-cloud-ide
Cloud9 https://aws.amazon.com/jp/cloud9/
などの選択肢があります。

ただし、情報系の学生であれば安価でも良いのでPCを購入することを強く勧めます。

1章は、主に環境設定ですので、すでに環境構築を済まされている方は、2章へおすすみください。
1章は(大学の権限制御された)CentOSへの環境構築方法ですので、Windows等お使いの方は Rails の環境構築についてかかれたサイトをご参照ください。参考例

前置き

1,本チュートリアルでは、コマンドライン (ターミナル) のコマンドが多用されています。簡素化のため、次のようなプロンプト (行の頭に「$」を表示するスタイル) を使って、その例がコマンドラインであることを示しています。
($ は入力不要です)

terminal
$ echo "hello world"
hello world

2,同じ内容の繰り返しがやや多いですが、繰り返すたびに徐々に説明を深めてもいきます。反復こそが使える記憶に繋がるので。

厳密な説明よりも、曖昧でも理解しやすいことを目指しています。
とりあえず理解できてすすめられる説明 > 完璧に正しい説明
としています。

コードは追記していくことが多いです。内容を理解しつつ適切な追加をしていってください。

1章で学ぶこと

rails 環境構築
gem
bundler
Gemfile
サーバの起動・停止

準備

1. まずは、作業するためのフォルダを作成します

自分のホームディレクトリ上にRails用のフォルダ(ディレクトリ)を作成していきます。
(ここでは rails_app )。

terminal
$ cd ~
$ mkdir rails_app
$ cd rails_app
$ mkdir kadai

左上に書いてある文字は、コードをどこに書くのかを指しています。
terminal は 端末アプリケーション のことです。

PC に対して、命令を出します。

コマンドの例として、ディレクトリの作成・ディレクトリの移動・エディタの起動・サーバーの起動、gem のインストール等があります。

Linux のコマンドに不慣れな方はこちらを参照してください
主要なコマンド一覧 
terminal について
cmdについて

2. カレントディレクトリを kadai に移動し、rails をインストールしていきます。

terminal
$ cd kadai
$ bundler -v
$ bundle init

bundler -v を実行して bundler が存在しなかった場合
gem install bundler
を実行してください。

bunlder と gem について

Gem
GemはRubyGemsに公開しているライブラリのことです。
gemをインストールして使用することで、1からコードを書かなくても簡単に機能を実装することができます。

bundler
Gem を一括インストールするためのものです。
Gem は下記のように記述することで個別インストールすることができます。
 gem install "Gemの名前"

複数人で作業する場合など、「どのGemをインストールする必要があるか」「どのバージョンをインストールするか」をわかりやすく管理しておく必要があります。
これを一覧して記述しておくファイルが Gemfile です。

このGemfileにインストールしたいgemを記述し、それを元にbundlerを使ってインストールを行います。
(注:バージョンを記載しなければ、最新バージョンがインストールされます)

3. Gemfile を編集

Gemfile をエディタで開いて、下記のコードを記述し、保存してください。
(bundle init によって、Gemfile が作成されているはずです)

【エディタでのファイルの開き方】
terminalからファイルを開けます。
開き方はお使いのエディタによって異なります。(例↓)
code Gemefile (VScodeの場合)
atom Gemefile (Atomの場合)
subl Gemefile (Sublimetextの場合)

Gemfile
source "https://rubygems.org"
gem "rails","~> 5.2.3"

Gemfile にかかれた Gem をインストールする場合は、bundlerの仕事でしたね。
terminal にて下記のコマンドを実行します。

terminal
$ bundle install --path vendor/bundle

bundle install時の --path vendor/bundle(インストール先の指定)
このオプションは省略可能ですが、省略すると
システムグローバルにrailsがインストールされます。
グローバルにインストールされると、全てのプロジェクトに影響を与えてしまいます。
通常、プロジェクト毎に異なるバージョンを指定することが多いので、これはよくありません。
【理由】Gem毎にバージョンの相性があり、バージョンを指定しないとうまく作動しない
ことがあります。そのためグローバルが一括変更されてしまうと不具合が生じてしまいます。
そのため開発時はアプリケーション(プロジェクト)ごとに、path指定することが推奨されます。

これで Rails のインストールが完了しました。

4.新規Railsアプリケーションの作成

rails new
必要なRails関係のファイル/ディレクトリを生成します
このとき、Gemfileを上書きするか聞いてくるので許可してください(Yを入力、あるいはそのままEnter)

terminal
$ bundle exec rails new .

5. エラーの解消

ここで sprockets関係のバージョン依存のエラーが表示されるので、これを解消するために以下のコマンドを実行してください。

terminal
$ bundle update

CentOSの場合、さらにGemfileの修正が必要となる。以下の行を探して、先頭のコメント記号(#)をはずして保存し、>mini_racerをインストールするようにする。ちなみにmini_racerはJavaScript実行環境のためのgem。
gem 'mini_racer', platforms: :ruby
上で修正したGemfile利用し、再度gemインストールを行う。
bundle install --path vendor/bundle

6. rails サーバーの起動

terminal
$ bin/rails server

今回 rails_app/bin というフォルダの中に、 rails をインストールしています。
その rails を実行したいので、 bin/rails としています。(環境によっては binなくてもうごきます)

7. ブラウザから確認

サーバー(Puma)を起動した状態のまま、ブラウザ(Chrome)を起動して 以下のURLにアクセスする。
http://localhost:3000
サーバを終了させるには、ターミナル上でCtrl-Cを押せばよい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした