0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railチュートリアルのsample_app作成の流れのみ

Last updated at Posted at 2021-10-11

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のバージョン番号を削除する

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

# 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サーバーへの接続を許可する

config/environments/development.rb
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を追加する

app/controllers/application_controller.rb
class ApplicationController < ActionController::Base

  def hello
    render html: "hello, world!"
  end
end

11.リスト 1.11:ルートルーティングを設定する

config/routes.rb
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ファイル

README.md

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)

「これ実行したときアラート表示されたが、インストール完了してた。」

image.png

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をサンプルアプリケーション用に編集する

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

README.md
# 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/)
を参考にしてください。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?