Railsチュートリアル 第1章 - 「Yay! You're on Rails!」から「hello, world!」まで

# 演習問題

## 1.デフォルトのRailsページに表示されているものと比べて、今の自分のコンピュータにあるRubyのバージョンはいくつになっていますか?

```:zsh
ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
```

今自分のMacにあるRubyのバージョンは、`2.3.7p456`であるようです。

## 2.同様にして、Railsのバージョンも調べてみましょう。調べたバージョンはリスト 1.1でインストールしたバージョンと一致しているでしょうか?

```:zsh
rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails
```

自分のMacのローカル環境には、Railsそのものがインストールされていないようです。

```:bash
# rails -v
Rails 5.1.6
```

一方、これまで環境構築に取り組んできたDockerコンテナにインストールされたRailsのバージョンは、`5.1.6`でした。確かにRailsチュートリアルのリスト1.1記載の内容と一致しています。

# hello, world!

サーバーを起動すると「Yay! You're on Rails!」が表示される、という状態になりました。この状態で、`app/controllers/`以下にあるコントローラの一覧を見てみましょう。

```:bash
# pwd
/var/www/hello_app

# ls app/controllers/*_controller.rb
app/controllers/application_controller.rb
```

Railsチュートリアルの記述と同様の状態になっています。この時点で、コントローラはApplicationひとつしか存在しません。

Raisチュートリアル リスト1.7の内容の通り、Applicationコントローラにhelloを追加します。

```diff:app/controllers/application_controller.rb
 class ApplicationController < ActionController::Base
   protect_from_forgery with: :exception
+
+  def hello
+    render html: "hello, world!"
+  end
 end
```

Raisチュートリアル リスト1.9の内容の通り、ルートルーティングを設定します。

```diff:config/routes.rb
 Rails.application.routes.draw do
-  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
+  root 'application#hello'
 end

```

<img width="635" alt="スクリーンショット 2019-07-23 11.45.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323778/9bb19d9f-25e3-d0af-560a-f92597f99c93.png">

無事hello, world!が表示されました。

# 再び演習

## 1.リスト 1.7のhelloアクションを書き換え、「hello, world!」の代わりに「hola, mundo!」と表示されるようにしてみましょう。 

先程のhello, world!完了時点から。

```diff:app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
   protect_from_forgery with: :exception
 
   def hello
-    render html: "hello, world!"
+    render html: "hola, mundo!"
   end
 end
```

結果は以下の通りになりました。
<img width="471" alt="スクリーンショット 2019-07-23 11.56.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323778/a3370b21-3073-153c-51dd-340f3182d76f.png">

## 2.Railsでは「非ASCII文字」もサポートされています。「¡Hola, mundo!」にはスペイン語特有の逆さ感嘆符「¡」が含まれています。（略）

演習1.完了時点から。

```diff:app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
   protect_from_forgery with: :exception
 
   def hello
-    render html: "hola, mundo!"
+    render html: "¡hola, mundo!"
   end
 end
```

結果は以下の通りになりました。
<img width="520" alt="スクリーンショット 2019-07-23 12.00.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323778/682ae2b2-7de8-6995-73f1-4ba0904d303b.png">

## 3.リスト 1.7のhelloアクションを参考にして、２つ目のアクションgoodbyeを追加しましょう。このアクションは、「goodbye, world!」というテキストを表示します。（略）

演習2.完了時点から。

```diff:app/controllers/application_controller.rb
 class ApplicationController < ActionController::Base
   def hello
     render html: "¡hola, mundo!"
   end
+
+  def goodbye
+    render html: "goodbye, world!"
+  end
 end
```

```diff:config/routes.rb
 Rails.application.routes.draw do
-  root 'application#hello'
+  root 'application#goodbye'
 end
```

結果は以下の通りになりました。
<img width="520" alt="スクリーンショット 2019-07-23 14.42.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/323778/86b79d2d-4893-df3b-68ad-8f5a503fe398.png">