1.リスト 1.1:Rubyドキュメントをスキップする設定を.gemrcファイルに追加するコマンド
$ echo "gem: --no-document" >> ~/.gemrc
2.リスト 1.2:バージョンを指定してRailsをインストールする
$ gem install rails -v 6.0.3
3.JavaScriptソフトウェアの依存関係を管理するYarnというプログラム
$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
または、
$ yarn install --check-files
4.リスト 1.3:Railsプロジェクト用のenvironmentディレクトリを作る
# クラウドIDEではこの手順は不要です
$ cd # プロジェクトのホームディレクトリに移動
$ mkdir environment # environmentディレクトリを作成
$ cd environment/ # 作成したenvironmentディレクトリに移動
5.リスト 1.4:rails newを実行する(バージョン番号を指定)
$ rails _6.0.3_ new sample_app
6.リスト 1.6:Gemfileの内容を一新させ、Rubyのバージョン番号を削除する
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.6'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
end
# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
7.アプリケーションのGemfileの内容をリスト 1.6で置き換えたら、bundle installを実行してgemをインストールします。
ubuntu:~/environment $ cd sample_app
ubuntu:~/environment/sample_app (master) $ bundle install
8.リスト 1.7:ローカルWebサーバーへの接続を許可する
Rails.application.configure do
.
.
.
# Cloud9 への接続を許可する
config.hosts.clear
end
9.リスト 1.8:Railsサーバーを実行する
新しいターミナルを開き下記コードを実行
ubuntu:~/environment $ cd sample_app
ubuntu:~/environment/sample_app (master) $ rails server
10.リスト 1.9:Applicationコントローラにhelloを追加する
class ApplicationController < ActionController::Base
def hello
render html: "hello, world!"
end
end
11.リスト 1.11:ルートルーティングを設定する
Rails.application.routes.draw do
root 'application#hello'
end
12.初回システムのセットアップ、リスト
1.12:名前とメールをGitに設定する
$ git config --global user.name "自分の名前"
$ git config --global user.email your.email@example.com
13.リスト 1.13:クラウドIDEでデフォルトのエディタを設定する
$ sudo ln -sf `which nano` /usr/bin
14.(必須ではない)リスト 1.14:git coをcheckoutのエイリアスに設定する
$ git config --global alias.co checkout
15.リスト 1.15:Gitでパスワードを一定時間保持するように設定する
$ git config --global credential.helper "cache --timeout=86400"
16.初回のリポジトリセットアップ
ubuntu:~/environment/sample_app (master) $ git init
17.プロジェクトの全ファイルをリポジトリに追加
ubuntu:~/environment/sample_app (master) $ git add -A
18.変更をリポジトリに反映(コミット)するにはcommitコマンドを使う。
$ git commit -m "Initialize repository"
19.logコマンドでコミットメッセージの履歴が見られる。
ubuntu:~/environment/sample_app (master) $ git logcommit 2a61a502766ca02dca5bff9eb67adb5db292b5c2 (HEAD -> master)
Author: 自分のユーザー名 <自分のメルアド>
Date: Mon Oct 11 22:45:30 2021 +0000
Initialize repository
q
を押すと終了できる。
20.GitHubに登録(省略)
21.リスト 1.16:GitHubをリモートoriginに追加してそのリポジトリにpushする
ubuntu:~/environment/sample_app (master) $ git remote add origin https://github.com/mizumanjyu/sample_app.git
ubuntu:~/environment/sample_app (master) $ git push -u origin master
Username for 'https://github.com/mizumanjyu/sample_app.git': mizumanjyu
Password for 'https://mizumanjyu@github.com/mizumanjyu/sample_app.git':
Counting objects: 104, done.
Compressing objects: 100% (86/86), done.
Writing objects: 100% (104/104), 55.82 KiB | 2.15 MiB/s, done.
Total 104 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), done.
To https://github.com/mizumanjyu/sample_app.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
passwordを入力するとき何も表示されてないけど、確かに入力できている。あと、githubのパスワードではなく、トークンを入力すること。
22.ブランチ
ubuntu:~/environment/sample_app (master) $ git checkout -b modify-README
Switched to a new branch 'modify-README'
ubuntu:~/environment/sample_app (modify-README) $ git branch
master
* modify-README
23.Edit(編集)
リスト 1.17:新しいREADMEファイル
24.Commit(コミット)
ブランチの状態を確認
ubuntu:~/environment/sample_app (modify-README) $ git status
On branch modify-README
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: Gemfile
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
コミット
ubuntu:~/environment/sample_app (modify-README) $ git commit -a -m "Improve the README file"
[modify-README 326628a] Improve the README file
2 files changed, 5 insertions(+), 24 deletions(-)
Merge(マージ)
masterブランチに変更をマージ(merge)する。
ubuntu:~/environment/sample_app (modify-README) $ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
ubuntu:~/environment/sample_app (master) $ git merge modify-README
Updating 2a61a50..326628a
Fast-forward
Gemfile | 2 --
README.md | 27 +++++----------------------
2 files changed, 5 insertions(+), 24 deletions(-)
変更をマージした後は、`git branch -d`を実行してトピックブランチを削除すれば終わり。
ubuntu:~/environment/sample_app (master) $ git branch -d modify-README
Deleted branch modify-README (was 326628a).
25.Push(プッシュ)
ubuntu:~/environment/sample_app (master) $ git push
Username for 'https://github.com/mizumanjyu/sample_app.git': mizumanjyu
Password for 'https://mizumanjyu@github.com/mizumanjyu/sample_app.git':
Counting objects: 4, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 477 bytes | 477.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/mizumanjyu/sample_app.git
2a61a50..326628a master -> master
26.Herokuのセットアップとデプロイ
HerokuではPostgreSQLデータベースを使うので本番(production)環境に`pg`gemをインストールしてRailsがPostgreSQLと通信できるようにする。
Gemfileの追加や並び替えを行ったGemfile
```ruby:Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.6'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
end
group :production do
gem 'pg', '1.1.4'
end
# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
27.本番用以外のgemをインストールする(インストールするとupdateするように言われるのでbundle updateをする)
ubuntu:~/environment/sample_app (master) $ bundle install --without production
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
You have requested:
listen = 3.1.5
The bundle currently has listen locked at 3.7.0.
Try running `bundle update listen`
If you are updating multiple gems in your Gemfile
at once,
try passing them all to `bundle update`
ubuntu:~/environment/sample_app (master) $ bundle update
28.変更した内容をコミットする
ubuntu:~/environment/sample_app (master) $ git commit -a -m "Update Gemfile Heroku"
[master c6e2cb0] Update Gemfile Heroku
2 files changed, 148 insertions(+), 158 deletions(-)
rewrite Gemfile (87%)
29.Herokuのアカウントを新規作成して設定する、Herokuのユーザー登録を行い、つづいて、自分のシステムにHerokuコマンドラインクライアントがインストールされているか確認する
ubuntu:~/environment/sample_app (master) $ heroku --version
heroku: command not found
「まだインストールできてない」
30.クラウドIDE上でHerokuをインストールするコマンド
ubuntu:~/environment/sample_app (master) $ source <(curl -sL https://cdn.learnenough.com/heroku_install)
「これ実行したときアラート表示されたが、インストール完了してた。」
heroku update
「をしろって意味?なのかheroku --versionで確認したらエラーなくなった。」
31.herokuにログインする、--interactiveオプションをつけるとブラウザを開かない
ubuntu:~/environment/sample_app (master) $ heroku login --interactive
heroku: Enter your login credentials
Email: **************
Password: *********
Logged in as *******************
32.Herokuに新しいアプリケーションを作成する
ubuntu:~/environment/sample_app (master) $ heroku create
Creating app... done, ⬢ evening-ravine-43128
https://evening-ravine-43128.herokuapp.com/ | https://git.heroku.com/evening-ravine-43128.git
33.Herokuにデプロイする(1)
まずはGitを使ってHerokuにリポジトリをプッシュする。
ubuntu:~/environment/sample_app (master) $ git push heroku master
34.Herokuコマンド
アプリケーションの名前を変更する
ubuntu:~/environment/sample_app (master) $ heroku rename rails-tutorial-sample_app
Renaming evening-ravine-43128 to rails-tutorial-sample_app... !
▸ Name must start with a letter, end with a
▸ letter or digit and can only contain lowercase
▸ letters, digits, and dashes.
「条件にあった名前でないと当然リネームできない。ので下記の通り変更。」
ubuntu:~/environment/sample_app (master) $ heroku rename tuttakatutta
Renaming evening-ravine-43128 to tuttakatutta... done
https://tuttakatutta.herokuapp.com/ | https://git.heroku.com/tuttakatutta.git
▸ Don't forget to update git remotes for all
▸ other local checkouts of the app.
Git remote heroku updated
35.第3章 ほぼ静的なページの作成へ飛び、サンプリアプリケーションを作成するってすでにsample_appで作成開始してる
Gemfileをサンプルアプリケーション用に編集する
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '6.0.3'
gem 'puma', '4.3.6'
gem 'sass-rails', '5.1.0'
gem 'webpacker', '4.0.7'
gem 'turbolinks', '5.2.0'
gem 'jbuilder', '2.9.1'
gem 'bootsnap', '1.4.5', require: false
group :development, :test do
gem 'sqlite3', '1.4.1'
gem 'byebug', '11.0.1', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '4.0.1'
gem 'listen', '3.1.5'
gem 'spring', '2.1.0'
gem 'spring-watcher-listen', '2.0.1'
end
group :test do
gem 'capybara', '3.28.0'
gem 'selenium-webdriver', '3.142.4'
gem 'webdrivers', '4.1.2'
gem 'rails-controller-testing', '1.0.4'
gem 'minitest', '5.11.3'
gem 'minitest-reporters', '1.3.8'
gem 'guard', '2.16.2'
gem 'guard-minitest', '2.4.6'
end
group :production do
gem 'pg', '1.1.4'
end
# Windows ではタイムゾーン情報用の tzinfo-data gem を含める必要があります
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
36.前の章と同じようにbundle install
を実行してGemfileで指定したgemのインストールをする。--without production
オプションを使って、production環境でしか使わないgemはインストールしないようにしておく。
$ bundle install --without production
$ bundle update
37.Gitリポジトリの初期化
ubuntu:~/environment/sample_app (master) $ git init
Reinitialized existing Git repository in /home/ubuntu/environment/sample_app/.git/
ubuntu:~/environment/sample_app (master) $ git add -A
ubuntu:~/environment/sample_app (master) $ git commit -m "Initialeze repository"
[master 81e6fd0] Initialeze repository
2 files changed, 49 insertions(+), 4 deletions(-)
38.サンプルアプリケーション向けに書き換えたREADME
# Ruby on Rails チュートリアルのサンプルアプリケーション
これは、次の教材で作られたサンプルアプリケーションです。
[*Ruby on Rails チュートリアル*](https://railstutorial.jp/)
(第6版)
[Michael Hartl](https://www.michaelhartl.com/) 著
## ライセンス
[Ruby on Rails チュートリアル](https://railstutorial.jp/)内にある
ソースコードはMITライセンスとBeerwareライセンスのもとで公開されています。
詳細は [LICENSE.md](LICENSE.md) をご覧ください。
## 使い方
このアプリケーションを動かす場合は、まずはリポジトリを手元にクローンしてください。
その後、次のコマンドで必要になる RubyGems をインストールします。
$ bundle install --without production
その後、データベースへのマイグレーションを実行します。
$ rails db:migrate
最後に、テストを実行してうまく動いているかどうか確認してください。
$ rails test
テストが無事に通ったら、Railsサーバーを立ち上げる準備が整っているはずです。
$ rails server
詳しくは、[*Ruby on Rails チュートリアル*](https://railstutorial.jp/)
を参考にしてください。