![見出し画像](https://assets.st-note.com/production/uploads/images/117984009/rectangle_large_type_2_5f3664725d6e59883b97e670015046a7.png?width=1200)
知識ゼロからの 『とほほのRuby on Rails入門』 #6
これはプログラミング初心者がRuby on Railsの勉強をしていく記録です。
◇ この記事で勉強しているサイト
◇ 前回までの記事一覧
今回は前回scaffoldで簡単に作ったユーザーアプリと同様のもの(ブック管理アプリ)を、手作業で開発していきます。
ブック管理アプリを作成する
モデルを作成する
titleとauthorカラムをもつBookモデルを作成します。
![](https://assets.st-note.com/img/1695895454837-AJywPGHo6U.jpg)
前回と差分のファイルがdbのmigrateフォルダーに作成されているので、今回もrails db:migrateを行うようです。
![](https://assets.st-note.com/img/1695895699731-PDHrId21oo.jpg?width=1200)
![](https://assets.st-note.com/img/1695895504192-oFNcbXiOTB.jpg?width=1200)
次はコンソールというものを使ってみるようです。
![](https://assets.st-note.com/img/1695895560128-aWMANu5s04.jpg)
左下の表記が変わりましたね。
終わるときはCtrl+Dを押すようです。
rails consoleはRuby on Rails アプリケーションのための対話型のコマンドラインツールとのこと。これを使ってアプリケーションの環境を操作したり、データベースとやり取りしたり、デバッグやトラブルシューティングを行ったりできるみたいです。便利そうですね。
↓ 参照
その前にファイルの最初の状態を見ておこうと思います。
![](https://assets.st-note.com/img/1695895646956-jEfIvQBXaB.jpg?width=1200)
![](https://assets.st-note.com/img/1695895653735-iFgm468CNw.png?width=1200)
ではコンソールを使ってみます。
![](https://assets.st-note.com/img/1695896153042-7R33vovqgJ.jpg?width=1200)
book = Book.new(title: “吾輩は猫である”, author: “夏目漱石”)
と入力しました。
これによってさっき見たファイルの記述が変わったりするのかな?と思っていましたが、特に変化は見つけられませんでした。
続きをやってみます。
![](https://assets.st-note.com/img/1695896323884-fsgQlwCUqo.jpg?width=1200)
さっきのをセーブしたのかな。
![](https://assets.st-note.com/img/1695896323894-OWsPpXxb4j.jpg)
お!登録したのが表示されていますね。
![](https://assets.st-note.com/img/1695896323933-3qQbQxOSqK.jpg?width=1200)
id:1のを検索して表示って感じですかね。
ここまでやってもファイルの方には特に変化は見られない。
どこかに保存されているんだろうか。
コントローラを作成する
次のように入力してControllerを作成します。
![](https://assets.st-note.com/img/1695896646140-iRgz6O4iq5.jpg)
一覧画面を作成する
さっき作ったControllerを編集します。
![](https://assets.st-note.com/img/1695896671621-BROLhQNnrn.png?width=1200)
![](https://assets.st-note.com/img/1695896671711-bIHMKdv5qd.jpg?width=1200)
allというのは「そのモデルがやり取りしているデータベースのテーブルに保存されているすべてのレコードをまとめて取得するメソッド」とのこと。
用語がわからないので調べました。
Excelで例えると
•テーブルとは、Sheet
•レコードとは、データそのもの
とのこと。
Bookモデルがやり取りしているデータベースがExcelみたいなものだと想像して、Sheetに書かれているすべてのデータをまとめて取得できるメソッドとイメージしておきます。
↓ 参照
次にView。
![](https://assets.st-note.com/img/1695896671758-S5lM457PBj.png?width=1200)
この中にindex.html.erbファイルを新規作成します。
![](https://assets.st-note.com/img/1695969398106-n6tAlDAtjm.png?width=1200)
データベースに保存されている本のタイトルをリスト形式で表示。リンクも貼ってあるって感じですかね。
最後にルーティングを追加します。
![](https://assets.st-note.com/img/1695896671944-EUfnfAwDn1.jpg?width=1200)
ブラウザで確認してみます。
![](https://assets.st-note.com/img/1695897993648-CzgTJuq8o3.png?width=1200)
![](https://assets.st-note.com/img/1695969448128-UJExTj1Ugs.png?width=1200)
コンソールで登録した「吾輩は猫である」が表示されていますね。
やはり私が見つけられていないだけで、データはどこかに保存されているようです。
データが保存されている場所を確認したいのですが、調べてもよく分からなかったので一旦保留にしておきます。
最後に、全体の流れをHomeのページを作ったときと比較してみます。
HomeのControllerを作成したときは「rails generate controller Home index」と入力したのでViewにindexファイルも自動生成されていました。
今回は「rails generate controller Books」とだけ入力したので、Viewのindexファイルは自分で作ったという感じですよね。
そしてHelpページを作ったときと同様に、リンク先のページを新しく作ったのでルーティングの追加を行ったと。
流れがだんだんわかってきた気がします。
今回はここまで!
次回は本のタイトルをクリックしたときに表示される、詳細画面を作っていくみたいです。
楽しみ!