見出し画像

知識ゼロからの 『とほほのRuby on Rails入門』 #6

これはプログラミング初心者がRuby on Railsの勉強をしていく記録です。

◇ この記事で勉強しているサイト

◇ 前回までの記事一覧


今回は前回scaffoldで簡単に作ったユーザーアプリと同様のもの(ブック管理アプリ)を、手作業で開発していきます。

ブック管理アプリを作成する

モデルを作成する

titleとauthorカラムをもつBookモデルを作成します。

前回と差分のファイルがdbのmigrateフォルダーに作成されているので、今回もrails db:migrateを行うようです。

差分のファイル。
今後も作成するごとに行っていけばいいのかな。


次はコンソールというものを使ってみるようです。

こんな感じ。
左下の表記が変わりましたね。
終わるときはCtrl+Dを押すようです。

rails consoleはRuby on Rails アプリケーションのための対話型のコマンドラインツールとのこと。これを使ってアプリケーションの環境を操作したり、データベースとやり取りしたり、デバッグやトラブルシューティングを行ったりできるみたいです。便利そうですね。 

↓ 参照

その前にファイルの最初の状態を見ておこうと思います。

新しくできたファイル。
中はこんな感じ。

ではコンソールを使ってみます。

すごく見えにくいですが、
book = Book.new(title: “吾輩は猫である”, author: “夏目漱石”)
と入力しました。

これによってさっき見たファイルの記述が変わったりするのかな?と思っていましたが、特に変化は見つけられませんでした。

続きをやってみます。

book.save
さっきのをセーブしたのかな。
Book.all
お!登録したのが表示されていますね。
Book.find(1)
id:1のを検索して表示って感じですかね。

ここまでやってもファイルの方には特に変化は見られない。
どこかに保存されているんだろうか。


コントローラを作成する

次のように入力してControllerを作成します。


一覧画面を作成する

さっき作ったControllerを編集します。

最初の状態。
追加しました。

allというのは「そのモデルがやり取りしているデータベースのテーブルに保存されているすべてのレコードをまとめて取得するメソッド」とのこと。

用語がわからないので調べました。
Excelで例えると
 •テーブルとは、Sheet
 •レコードとは、データそのもの
とのこと。

Bookモデルがやり取りしているデータベースがExcelみたいなものだと想像して、Sheetに書かれているすべてのデータをまとめて取得できるメソッドとイメージしておきます。

 ↓ 参照


次にView。

フォルダーは生成されているので、
この中にindex.html.erbファイルを新規作成します。
練習コードを入力。

データベースに保存されている本のタイトルをリスト形式で表示。リンクも貼ってあるって感じですかね。

最後にルーティングを追加します。

赤線部を追記しました。


ブラウザで確認してみます。

booksを押します。
できました!

コンソールで登録した「吾輩は猫である」が表示されていますね。
やはり私が見つけられていないだけで、データはどこかに保存されているようです。

データが保存されている場所を確認したいのですが、調べてもよく分からなかったので一旦保留にしておきます。


最後に、全体の流れをHomeのページを作ったときと比較してみます。

HomeのControllerを作成したときは「rails generate controller Home index」と入力したのでViewにindexファイルも自動生成されていました。

今回は「rails generate controller Books」とだけ入力したので、Viewのindexファイルは自分で作ったという感じですよね。

そしてHelpページを作ったときと同様に、リンク先のページを新しく作ったのでルーティングの追加を行ったと。

流れがだんだんわかってきた気がします。

今回はここまで!
次回は本のタイトルをクリックしたときに表示される、詳細画面を作っていくみたいです。
楽しみ!


この記事が気に入ったらサポートをしてみませんか?