RailsでToDoサービスを作ろう(第2回)〜scaffoldでやる事のCRUD作る〜

にゅ~ぶる
にゅ~ぶる

こんにちは、にゅ〜ぶるです。

こんにちは〜、ぶるこだよ〜💕

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

さて、第2回目ですね!前回は、こちら
今日は、「scaffoldでやる事のCRUD作る」について、進めていきたいと思います!

にゅ~ぶる
にゅ~ぶる

ToDoリストのメインとなる、タスクでCRUDを作っていくよ!

わ〜い💕
ついに画面が出来ていくんですね!!

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

RailsにはScaffoldという、コマンドひとつでCRUDが出来ちゃう便利機能があるんだ。

すご〜い💕

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

コマンドは、こんな感じ

rails generate scaffold モデル名 カラム名1:データ型1 カラム名2:データ型2 …
にゅ~ぶる
にゅ~ぶる

今回は、タスク(Task)で作っていくよ。
カラムとしては、何がいると思う?

そうねぇ〜
タスク名は必要でしょ〜
あとは〜詳細?
締め切り日?

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

そうだね!そんな感じのカラムで設定していくよ。

rails generate scaffold Task title:string content:text deadline:date

タスク名…titleというカラム名の文字列型(string)
詳細…contentというカラム名の複数行入力可能にしたいので、テキスト型(text)
締切日…dedlineというカラム名の日付入力にしたいので、日付型(date)

にゅ~ぶる
にゅ~ぶる

このコマンドを、プロジェクトのルートディレクトリで実行してね。
ファイルやディレクトリを自動で作成してくれるよ!

これだけで良いの?

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

うん。これだけなんだ。簡単でしょ?
簡単に出来ちゃうので注意も必要だよ。理解しないまま進んでしまうからね…

確かにそうですね!
どんなフィイルが作られたのか、そのファイルが何を意味しているのか、
ちゃんと調べないとね!

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

うんうん!
これはなんのファイル?って疑問があれば質問してね!
今回は長くなるので省略するけど、コメントどうぞ。

にゅ~ぶる
にゅ~ぶる

これで、ソースは出来たので、次はDBを作っていくよ。
次のファイルを確認してね。
config/database.yml
ここに、DBへの接続情報が含まれているから、

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>;
  username: root
  password:
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: todo_development
にゅ~ぶる
にゅ~ぶる

この、usernameとpasswordを皆さんの設定に合わせてくださいね。

にゅ~ぶる
にゅ~ぶる

設定を合わせた状態で、まずはDBを作成するために、次のコマンドを実行しましょう。

rails db:create
にゅ~ぶる
にゅ~ぶる

すると、こんなログが出るよ。

Created database 'todo_development'
Created database 'todo_test'
にゅ~ぶる
にゅ~ぶる

これでDBが作成されました。
DB接続ツールなどを使って確認してみてください。

にゅ~ぶる
にゅ~ぶる

そして次は、テーブルを作成してきます。
これもコマンドひとつで出来ちゃうんですよ!

rails db:migrate
にゅ~ぶる
にゅ~ぶる

このログはこんな感じ。

== 20200429055957 CreateTasks: migrating ======================================
-- create_table(:tasks)
   -> 0.0297s
== 20200429055957 CreateTasks: migrated (0.0298s) =============================
にゅ~ぶる
にゅ~ぶる

これだけでテーブルも出来ました!
実はこれで完成なんですよ!

なんやてー!!

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

では早速、「rails s」して、ブラウザで「http://127.0.0.1:3000/」にアクセスしてみてね。

前のRails画面から変わってないよ〜?

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

おっと失礼。
Taskの画面を作ったので、「http://127.0.0.1:3000/tasks」にアクセスしてみて!

おおお!

ぶるこ
ぶるこ

しょぼ…

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

まぁ確かに…
画面デザインはデフォルトのままで行くから勘弁してください笑

CRUDの全ての機能が出来上がってるから、実際に使ってみてよ!

ほんとだ〜💕
機能はちゃんと出来てるね!
デザインは…まぁ…追々…笑

ぶるこ
ぶるこ
にゅ~ぶる
にゅ~ぶる

今回はここまでだよ。お疲れ様でした!
次回は、「ユーザを紐付ける」お楽しみにっ!!

最後まで読んでくれてありがとうございました!

現在、Railsのチュートリアル的な感じで、
「Todoサービスを作る!」をテーマにお送りしております。
アジェンダは、こちら

質問等ありましたら、コメントなりTwitterなりで頂ければ対応させて頂きますので、遠慮なく利用くださいね。