『Ruby on Rails 5 アプリケーションプログラミング』でRails学習 その4(モデル)
寒いんだか寒くないんだか。
東京はそんな日が続いてますね。どうもモックです。
昨日、初めて生命保険の営業を受けて困ってます。
(よくある知り合いからパターン。
今度会って具体的な提案をさせてくれないかと。
知り合いがだいぶ年上のこともあり、ひるんでとりあえずOKしてしまいました。。)
そして、自分自身、業界のことも少し分かるし、
中には本当に人のことを思って生命保険をおすすめしてくれる
営業さんもいるので(当たり前か)、とっっても複雑!!!!
まあ今生命保険自分では入ってないし、
いい歳なのでそろそろ真剣に考える時期なのかな~と...。
てことで!いっそ思い切って保険ショップ行ってみて!勉強してこようかなと!
もしちゃんと行けたらそれだけの記事書きます!!!!!
悩み爆発してごめんなさい。
てことで。今日も続きをやっていきます!!!
前回の記事はコチラ↓↓
今日は書籍のP44から、ついにMVCのModelについてやっていくみたいですね!
2.4 モデルの基本(P44~)
「2.4.1 O/Rマッパーとは」、「2.4.2 データベース接続の設定」は
今回は特に作業を行っていないので割愛します。
2.4.3 モデルクラスの作成(P48~)
さて、O/Rマッパーについても学んだところで、
やっとこさモデルクラスを作成します。
今回は「書籍情報を表示する」というサンプルのようですね。
では、rails generateコマンドを実行してみます。
実行する際は、作成したアプリケーションのディレクトリまで移動しますよ。
(書籍どおりに進めている人は”railbook”という名前ですね。)
はい、実行されました!
それぞれのディレクトリを見てみましょう。
・\railbook\app\models
・\railbook\db\migrate
・\railbook\test\fixtures
・\railbook\test\models
それぞれしっかり出来ていました!
2.4.4 マイグレーションファイルによるテーブルの作成(P50~)
先ほど作られたマイグレーションファイルを確認します。
こんな感じで「\railbook\db\migrate」の下に、
恐らく実行した日付的な名前で作られていますね。
ファイルをひらいてみます。
なるほど。このコードをみると、
「ISBN番号、タイトル、価格、出版元、発行日、ダウンロード可能かどうか」
という情報を格納するテーブルが作られそう!ってことは
直感的に考えることができますね。
ではこのマイグレーションファイルを実行してみましょう。
無事booksテーブルができました!
これだけでテーブルが出来るなんて、感動です。
2.4.5 フィクスチャによるテストデータの準備
今のままでは作成されたテーブルには何の情報もないので
テストデータを入れておくようです。
※ちなみに書籍ではこれで10件ほどのデータが展開されると書いてありましたが、
どういうわけか私は2件しか出来ませんでした...
(次の2.4.6 で詳しく説明します)
2.4.6 補足:データベースクライアントの起動
rails dbconsoleコマンドで、SQLiteクライアントを起動できるみたいですね。
これはもちろんやってみましょう。中のデータがわかります。
まず、「rails dbconsole」でクライアントを起動。
次に、「.schema books」で、「booksテーブル」の構造がどのようになっているか調べることができます。列名や、データ型がわかりますね。
...ん?んん?
わかりますでしょうか。
私は次に「select * from books;」と実行してみているんですが、
(SOLiteもoracleやpostgreSOLとそんなに変わらないのかな)
そのあとに出力されているのが、中に入っている「本」情報の詳細です。
え!?これで全部!?しかも書籍名とかMy Stringとかてきとー!!
しかも全く同じ書籍情報2冊分しかないやんけ!!
にわかに信じられず、カウントしてみました。
モック「SQLiteさんや、booksテーブルには何冊の情報があるんだ~い?」
SQLite「2」
お、おう...。わかったよ..。
とりあえずほっとくことにしました。
モデル、長くなるので次の記事に区切ります!