実行環境
OS:macOS Sierra Ver.10.12.5
タスク管理アプリ作成
今回も前回同様ドットインストールさんで勉強。
前回記事はコチラ
taxa-program.hatenablog.com
例のごとく、railsで新しいアプリを作成。
$ rails new taskapp --skip-bundle
この辺りはもう手慣れてきた。
ちなみに後半の「–skip-bundle」でbundleのインストールを省略できるみたい。
プロジェクト作成 – Model –
下記コマンドでModelを作成。
$ rails g model Project title
Modelは単数形かつ頭文字は大文字にすることに注意です。
ここでmigrateファイルが作成されるので、前回同様にDBに設定します。
$ rake db:migrate
実際に設定されたどうか確認してみます。(DBの起動)
$ rails db
sqliteが起動するので、そこでスキーマを表示させてみます。
$ sqlite> .schema > CREATE TABLE "projects" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);
projectsテーブルが作成されていることが分かります。
このあたりは仕事でOracle使っているので結構理解しやすい。
idやcreated_atなどのデフォルト項目はrailsが勝手に作ってくれるみたい。
DBには欠かせない項目ですからね。
sqliteを終了する場合は下記コマンド
.exit
もう一つ便利なrailsコマンドがあるみたい。
$ rails console > Loading development environment (Rails 5.1.2) > irb(main):001:0>
これは作成したDB?アプリ?をインタラクティブに操作することができるみたい。
irb(main):001:0>に続けてDBに値を設定するコマンドを入力してみる。
irb(main):001:0> p = Project.new(title: "p1") > => #<Project id: nil, title: "p1", created_at: nil, updated_at: nil> irb(main):001:0> p.save > (0.2ms) begin transaction > SQL (1.0ms) INSERT INTO "projects" ("title", "created_at", "updated_at") VALUES (?, ?, ?) [["title", "p1"], >["created_at", "2017-07-25 14:58:40.250123"], ["updated_at", "2017-07-25 14:58:40.250123"]] > (0.7ms) commit transaction> => true
無事にデータがINSERTされました。
登録されたデータを確認してみる。
irb(main):003:0> p > => #<Project id: 1, title: "p1", created_at: "2017-07-25 14:58:40", updated_at: "2017-07-25 14:58:40">
作成時間がすごいズレている気がする(今は23時過ぎ)が
まぁ細かいことは気にせずにいきましょう。
また、上記ではProject.newとsaveの2段階実行する必要がありましたが、
それをひとまとまりにしたものが下記。
irb(main):004:0> Project.create(title: "p2")
consoleの終了
irb(main):007:0> quit
今日はこの辺りで。
明日は群馬へ出張です。