railsチュートリアルをしていく~1章~

##概要
 春にrailsチュートリアルをしていたのだが、夏に海外で2ヶ月遊んでからPCを触ることなく、怠惰の日々を送っていたため、何もかも忘れたので、今更必死にやっていく。今度は記事に書く。そしたら続けれるはず...

##1章 hello_app

まず、hello_appアプリの作成

```terminal
$ rails new hello_app
$ ls hello_app #hello_appの中身を確認
Gemfile       app/          db/           public/
Gemfile.lock  bin/          lib/          test/
README.md     config/       log/          tmp/
Rakefile      config.ru     package.json  vendor/
```

次にGemfileを編集する

```terminal
$ cd hello_app #hello_appディレクトリに移動
$ open gemfile  #Gemfilを開ける
```

```ruby:Gemfile
source 'https://rubygems.org'

gem 'rails',        '5.1.6'
gem 'puma',         '3.9.1'
gem 'sass-rails',   '5.0.6'
gem 'uglifier',     '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks',   '5.0.1'
gem 'jbuilder',     '2.6.4'

group :development, :test do
  gem 'sqlite3',      '1.3.13'
  gem 'byebug', '9.0.6', platform: :mri
end

group :development do
  gem 'web-console',           '3.5.1'
  gem 'listen',                '3.1.5'
  gem 'spring',                '2.0.2'
  gem 'spring-watcher-listen', '2.0.1'
end
```

bundle installでgemをインストール

```terminal
$ bundle install
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
You have requested:
  spring = 2.0.2

The bundle currently has spring locked at 2.1.0.
Try running `bundle update spring`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`
```

bundle updateしろと言われたのでupdateする

```terminal
$ bundle update
```

最後にRailsサーバーを実行する

```terminal
$ rails s
```

http://localhost:3000/ にアクセスすると
<img width="668" alt="スクリーンショット 2019-10-27 21.23.44.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156096/97552953-19bc-f3fa-04d4-7b513aee3cae.png">

成功！！

Applicationコントローラにアクションhelloを追加

```ruby:app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

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

ルートルーティングを設定する

```ruby:config/routes.rb
Rails.application.routes.draw do
   root 'application#hello'
end
```

もう一度`rails s`をして http://localhost:3000/ にアクセスすると
<img width="662" alt="スクリーンショット 2019-10-27 21.39.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156096/63644fbc-e2ae-f79f-760b-07bdae442fd2.png">

成功！！

##git

自分の場合はソースをGithubにあげるだけ。
Bitbucket使うのはめんどくさい...

```terminal
$ git init
$ git add -A
$ git commit -m "first commit"
$ git remote add origin https://github.com/tomo1227/hello_rails.git
$ git push origin master
```

##heroku

gemfileに追加

```ruby:gemfile
source 'https://rubygems.org'

gem 'rails',        '5.1.6'
gem 'puma',         '3.9.1'
gem 'sass-rails',   '5.0.6'
gem 'uglifier',     '3.2.0'
gem 'coffee-rails', '4.2.2'
gem 'jquery-rails', '4.3.1'
gem 'turbolinks',   '5.0.1'
gem 'jbuilder',     '2.7.0'

group :development, :test do
  gem 'sqlite3', '1.3.13'
  gem 'byebug',  '9.0.6', platform: :mri
end

group :development do
  gem 'web-console',           '3.5.1'
  gem 'listen',                '3.1.5'
  gem 'spring',                '2.0.2'
  gem 'spring-watcher-listen', '2.0.1'
end

group :production do
  gem 'pg', '0.20.0'
end
```

```terminal
$ bundle install --without production
$ git commit -a -m "Update Gemfile for Heroku"
$ heroku --version
heroku/7.18.9 darwin-x64 node-v11.1.0
$ heroku update
$ heroku --version
heroku/7.33.3 darwin-x64 node-v11.14.0
$ heroku create hello-tomorails
Creating ⬢ hello-tomorails... done
https://hello-tomorails.herokuapp.com/ | https://git.heroku.com/hello-tomorails.git
$ git push heroku master
```

最後にhttps://hello-tomorails.herokuapp.com/ にアクセスすると・・・

<img width="699" alt="スクリーンショット 2019-10-30 18.41.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156096/ec74111b-eea8-7e13-384d-224b84a00101.png">

第１章　END