Rails初心者〜構築からMVC開発〜

# Ruby on Railsの環境構築

1. gemとrails

1.1. Rubyのバージョンを確認

```bash:
rubyuser01:~/workspace $ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]
```

1.2. Railsのバージョンを確認→インストールされていない

```bash:
rubyuser01:~/workspace $ rails -v
bash: rails: command not found
```

1.3. OSのバージョンを確認

```bash:
rubyuser01:~/workspace $ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
```

1.4. gemのバージョンを確認

```bash:
rubyuser01:~/workspace $ gem -v
2.5.1
```

1.5. gem install でrailsをインストールする

```bash:
rubyuser01:~/workspace $ gem install rails
Fetching~
Successfully~
:
37 gems installed
```

1.6. Railsのバージョンを確認

```bash:
rubyuser01:~/workspace $ rails -v
Rails 5.0.0.1
```

1.7. Ruby on Railsのプロジェクトを作成する

```bash:
rubyuser01:~/workspace $ rails new demo
      create
      create  README.md
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
          :
Installing web-console 3.3.1
Using rails 5.0.0.1
Installing sass-rails 5.0.6
Bundle complete! 15 Gemfile dependencies, 63 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
         run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
rubyuser01:~/workspace $
```

1.8. フォルダを確認

```bash:
rubyuser01:~/workspace $ ls -ltr
total 8
-rw-rw-r--  1 ubuntu ubuntu  948 May  2 10:49 README.md
drwxr-xr-x 12 ubuntu ubuntu 4096 Aug 30 02:12 demo/
```

```bash:
rubyuser01:~/workspace $ cd demo/
rubyuser01:~/workspace/demo $ ls -ltr
total 64
-rw-r--r--  1 ubuntu ubuntu  130 Aug 30 02:10 config.ru
-rw-r--r--  1 ubuntu ubuntu  227 Aug 30 02:10 Rakefile
-rw-r--r--  1 ubuntu ubuntu  374 Aug 30 02:10 README.md
-rw-r--r--  1 ubuntu ubuntu 1729 Aug 30 02:10 Gemfile
drwxr-xr-x 10 ubuntu ubuntu 4096 Aug 30 02:10 app/
drwxr-xr-x  2 ubuntu ubuntu 4096 Aug 30 02:10 db/
drwxr-xr-x  5 ubuntu ubuntu 4096 Aug 30 02:10 config/
drwxr-xr-x  2 ubuntu ubuntu 4096 Aug 30 02:10 log/
drwxr-xr-x  4 ubuntu ubuntu 4096 Aug 30 02:10 lib/
drwxr-xr-x  2 ubuntu ubuntu 4096 Aug 30 02:10 public/
drwxr-xr-x  8 ubuntu ubuntu 4096 Aug 30 02:10 test/
drwxr-xr-x  3 ubuntu ubuntu 4096 Aug 30 02:10 vendor/
drwxr-xr-x  3 ubuntu ubuntu 4096 Aug 30 02:10 tmp/
-rw-r--r--  1 ubuntu ubuntu 4343 Aug 30 02:12 Gemfile.lock
drwxr-xr-x  2 ubuntu ubuntu 4096 Aug 30 02:12 bin/
rubyuser01:~/workspace/demo $
```

1.9. Webサーバを起動(WEBRick)

```bash:
rubyuser01:~/workspace/demo $ rails server -b 0.0.0.0 -p 8080
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://0.0.0.0:8080
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:8080
Use Ctrl-C to stop
```

1.10. ブラウザで確認
(Preview Running Apllication ボタンにてIDE内にブラウザタブが開かれる)

<img width="741" alt="スクリーンショット 2016-08-30 14.14.11.png" src="https://qiita-image-store.s3.amazonaws.com/0/2567/30129b60-53a4-8b40-39ec-b3563161693f.png">

1.11. Ctrl+CでWebサーバを停止する

2.. Ruby でMVC開発

2.1. Controllerクラスを作成

```bash:
rubyuser01:~/workspace/demo $ rails generate controller top index
```

2.2. ControllerとViewが作成されたことを確認

```bash:
rubyuser01:~/workspace/demo $ ls -l app/controllers/top_controller.rb 
-rw-r--r-- 1 ubuntu ubuntu 66 Aug 30 04:12 app/controllers/top_controller.rb
```

```bash:
rubyuser01:~/workspace/demo $ ls -l app/views/top/index.html.erb 
-rw-r--r-- 1 ubuntu ubuntu 66 Aug 30 04:12 app/views/top/index.html.erb
```

2.3. ControllerとViewの中身を確認

```bash:
rubyuser01:~/workspace/demo $ cat app/controllers/top_controller.rb 
class TopController < ApplicationController
  def index
  end
end
```

```bash:
rubyuser01:~/workspace/demo $ cat app/views/top/index.html.erb 
<h1>Top#index</h1>
<p>Find me in app/views/top/index.html.erb</p>
```

2.4. viコマンドにてconfig/routes.rbを編集する（以降よく編集する）

```bash:
rubyuser01:~/workspace/demo $ vi config/routes.rb 
```

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

2.5. routes.rbの中身を確認

```bash:
rubyuser01:~/workspace/demo $ cat config/routes.rb
Rails.application.routes.draw do
  root "top#index"
end
rubyuser01:~/workspace/demo $ 
```

2.6. Webサーバを起動してブラウザで確認

- viewのapp/views/top/index.html.erb が表示されていることを確認

<img width="648" alt="スクリーンショット 2016-08-30 13.56.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/2567/a71e29a2-a22b-e67f-53bd-48468a5202ab.png">


    - →app/views/top/index.html.erbの内容を編集して、ブラウザの更新を行うと即座に反映されることを確認
    - <p>〜</p>の文言に、「◆」を追加

<img width="583" alt="スクリーンショット 2016-08-30 13.51.32.png" src="https://qiita-image-store.s3.amazonaws.com/0/2567/686cff58-3398-6b74-ec8d-f8a2fc795ce3.png">


    - →config/routes.rbの「root "top#index”」を「root "top#index2”」に編集して、ブラウザの更新を行うと即座に反映されエラーとなる。
<img width="584" alt="スクリーンショット 2016-08-30 13.50.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/2567/f924e876-435e-0db8-1fc0-b9f8c06f416a.png">




    - →Controllerのapp/controllers/top_controller.rb のAction（メソッド）「index」を「index2」に編集して、さらにエラーとなる※
<img width="764" alt="スクリーンショット 2016-08-30 13.54.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/2567/47019dfb-0ef9-59fc-8a72-73873026896c.png">

※ indexは初めから備わっている予約語のため

### 続く
[Railsでmodelを作成（SQLite）](http://qiita.com/fk_2000/items/0a9203b28bc9442c782c)