min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Ruby on Rails の Scaffold(足場)コマンドで 図書館アプリにBook機能を追加

年末bitFlyer招待URL

bitFlyer口座開設(ビットコイン1,000円もらえる)URL

 

こないだ作った LibraryアプリにBook機能を追加する。

Ctrl-C

 

Scaffold(足場)

Scaffold(足場)指定は、1つのリソースをもとにその情報を管理するために最低限必要な機能を一気に作成する(gは generate)。

$ rails g scaffold book title:string description:text

scaffold book によって図書リソース(図書資源)に対応するBookモデルが作成され、同時に(Bookモデルに関する処理を制御する)Booksコントローラも生成されている。

 

title:string と description:text は Bookモデルの属性としての図書タイトルtitle(文字列)説明description(文=複数行対応可)の付加。

 

app/controllerの編集

コントローラファイルを編集する。

 

$ cat app/controllers/books_controller.rb

Bookモデルファイル

$ cat app/models/book.rb

 

Bookルーターファイル

$ cat config/router.rb

resources: の記述によって、Booksコントローラーの7つの標準アクション(new・create・edit・update・destroy・show・index)へのルートを決めている。ブラウザからアクセスするURIhttp://server:3000/ここ)で操作振り分けられるようになる。

 

マイグレーションによりDBを作成

$ cat db/migrate/20221213151700_create_books.rb 

$ rails db:migrate

migrate終わってファイルが増えた。

schema.rbseed.rbが新たにできている。

DBのテーブルが正しくできたかはdb/schema.rbによって確認できる。

$ cat db/schema.rb

 

図書館アプリ起動!

$ rails s -b 0.0.0.0

ばっちし動いてる。

New Book してみよう。

Create Book

Back

 

サーバ側の出力みると実行時にActiveRecordが動いてるのがわかる

ActiveRecrodMVCモデルのM(モデル)機能を提供し、データベースとモデルの仲介を行うORM(Object Relational Mapper / Mapping)として次の役割を果たす。

・モデルとデータベーステーブル、モデル属性とテーブル項目の対応づけ(Mapping)

・複数のモデル間の関連づけ(アソシエーション

・リソース変更時の検証(バリデーション

・リソース変更時のメソッドの呼び出し(Callback)

・データベーステーブルの作成・変更のマイグレーション

associationか。Marxか。

allメソッド、インスタンス変数@books、暗黙のindexビュー

$ cat app/views/books/index.html.erb

Ruby on Rails 楽しい。シンプルでわかりやすいけど強力。BGM聴きながらやる。

www.youtube.com

www.youtube.com

www.youtube.com

www.youtube.com









 

 

 

 

 

その買うを、もっとハッピーに。|ハピタス