Ruby on rails を使ってCRUDを実装するまで(プロジェクト作成~画面表示)

#Ruby on Railsとは何か
RUby on rails とはRubyのフレームワークの一つです。
PHPのフレームワークの一つであるLaravelとよく似ている（個人談）と感じたので、
今後、業務で使うかもしれないので、備忘録として、プロジェクトの作成、Routing,Model,DB,Controller,Viewの
使い方をまとめておく。

# ゴール
基本的なCRUDがRubyを用いてできるようになる
(この記事では画面表示ができるまでを範囲とする）

#バージョン
```
$ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
```
```
$rails -v
Rails 5.2.3
```

# プロジェクトの作成
適当なディレクトリで以下コマンドを実行する

```
$ruby new [好きなプロジェクト名]
```

## フォルダ構成
 作成したプロジェクト(ここではblog)のフォルダ構成は以下の通り

```
$ tree -l blog/
blog/
├── Gemfile
├── Gemfile.lock
├── README.md
├── Rakefile
├── app
│   ├── assets
│   │   ├── config
│   │   │   └── manifest.js
│   │   ├── images
│   │   ├── javascripts
│   │   │   ├── application.js
│   │   │   ├── cable.js
│   │   │   └── channels
│   │   └── stylesheets
│   │       └── application.css
│   ├── channels
│   │   └── application_cable
│   │       ├── channel.rb
│   │       └── connection.rb
│   ├── controllers
│   │   ├── application_controller.rb
│   │   └── concerns
│   ├── helpers
│   │   └── application_helper.rb
│   ├── jobs
│   │   └── application_job.rb
│   ├── mailers
│   │   └── application_mailer.rb
│   ├── models
│   │   ├── application_record.rb
│   │   └── concerns
│   └── views
│       └── layouts
│           ├── application.html.erb
│           ├── mailer.html.erb
│           └── mailer.text.erb
├── bin
│   ├── bundle
│   ├── rails
│   ├── rake
│   ├── setup
│   ├── spring
│   ├── update
│   └── yarn
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── cable.yml
│   ├── credentials.yml.enc
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   │   ├── development.rb
│   │   ├── production.rb
│   │   └── test.rb
│   ├── initializers
│   │   ├── application_controller_renderer.rb
│   │   ├── assets.rb
│   │   ├── backtrace_silencers.rb
│   │   ├── content_security_policy.rb
│   │   ├── cookies_serializer.rb
│   │   ├── filter_parameter_logging.rb
│   │   ├── inflections.rb
│   │   ├── mime_types.rb
│   │   └── wrap_parameters.rb
│   ├── locales
│   │   └── en.yml
│   ├── master.key
│   ├── puma.rb
│   ├── routes.rb
│   ├── spring.rb
│   └── storage.yml
├── config.ru
├── db
│   └── seeds.rb
├── lib
│   ├── assets
│   └── tasks
├── log
├── package.json
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── apple-touch-icon-precomposed.png
│   ├── apple-touch-icon.png
│   ├── favicon.ico
│   └── robots.txt
├── storage
├── test
│   ├── application_system_test_case.rb
│   ├── controllers
│   ├── fixtures
│   │   └── files
│   ├── helpers
│   ├── integration
│   ├── mailers
│   ├── models
│   ├── system
│   └── test_helper.rb
├── tmp
│   ├── cache
│   │   └── assets
│   └── storage
└── vendor

```

主に使うファイルを下記に記載しておく

```
config/route.rb         <- routingファイル
app/assets/stylesheets　<- css
app/controllers         <- controller
app/models              <- model
app/views               <- view
db/migrate              <- migration ファイル
```


##　画面表示を試してみよう
railsのローカル環境のサーバーの建て方はとても簡単で次のコマンドを打てば良い

```
$ rails server
=> Booting Puma
=> Rails 5.2.3 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.3.7-p456), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
```
<a href="http:localhost:3000">http://localhost:3000</a>にアクセスすると
![スクリーンショット 2019-04-09 12.48.59.png](https://qiita-image-store.s3.amazonaws.com/0/343721/ebf63803-3778-ef14-518d-77e6e35416de.png)
このような画面が表示されれば、とりあえずは大丈夫です。


長くなりそうなので、ここで一旦切ります。