Top Breadcumb navigator Programming Breadcumb navigator 3日間でマスターする Ruby on Rails講座 Breadcumb navigator 復習と、Scaffolding機能の概要

Lecture 61:

復習と、Scaffolding機能の概要

Instructor: 井上 博樹

Lecture Content


新しいセクションに進んでいきます。このセクションではRuby on Railsに内蔵されているScaffoldingという機能について学んでいきます。

まずこれまでの復習ですけれども、前のセクションで作成したアプリケーションについてみておきましょう。
まず railsstudy の中の book というところにRailsのプロジェクトを作成し、様々なコードを書いていきました。

そして、 bin ディレクトリーの中のrails コマンドに server オプション与えて、ローカルサーバーを起動しました。

そうするとローカルホストの3000番のポートにアクセスすると、プロジェクトのトップページができて、/books のディレクトリに行くと、書籍の一覧を表示して、そして新しい書籍を登録したり、書籍の情報を表示したり、また編集をして更新したり、そして削除したりといった行動を順次追加してきました。

念のためもう一度見ておくと、まずはプロジェクトの生成をしました。
これにはRailsコマンドの new というオプションを使って、そしてアプリ名を指定してプロジェクトを作っていきました。

次にコントローラとアクションを追加をしました。
これにはRailsコマンドの generate そして controller というオプションを使って、コントローラー名とアクション名を指定して、コントローラやその中のアクションメソッドの定義をしてきました。

それからルーティングの設定をしました。
アドレスによってどのページを見に行くか、という処理を app/config/routes.rb で指定しました。

それからリソースの追加を行いました。
これはデータベースのテーブルとモデルとの関連付けをするという定義を、先ほどのroutes.rb に追加しました。

それからビューの追加をしました。
標準テンプレートのことをビューと呼んでいますけども、これをプロジェクトの app/views というフォルダの中にファイルを追加しました。
またテンプレートについては .erb の拡張子を使って Ruby のコードを HTML に埋め込むという形でテンプレートファイルを生成しました。

続いてアクションメソッドの追加を行いました。
books_controller.rb こちらのファイルにRubyのメソッドを定義しました。
そしてRailsの中ではこのモデルに対するメソッドのことをアクションと呼んでいます。

またモデルの追加を行いました。railsの generate オプション使って、そして model そしてテーブル名の単数形を使うことでモデルのコードを出力することができました。

しかし、これを全て毎回やってるのは非常に大変なので、例えば商品管理だとか単純に名簿を管理するシンプルなアプリケーションの場合は、やることがほぼ決まっているので、これを一度に生成できるにしよう、というのが今回学ぶScaffoldingです。

前節までは、モデルやビューやコントローラーの連携の仕組みを理解していただくために、手動で作ってきましたが、今回は先程説明した、一度に必要なファイルを一気に生成するというScaffolding について実行していきたいと思います。

このScaffoldというのは日本語で言うと足場という意味です。つまりアプリケーションの土台を作ってくれるという意味を示しています。ただし、Scaffoldingも向いてる場合とそうでない場合があります。

Scaffoldingは単一テーブルの操作コードを一気に作ってくれるといいんですけども、複数になったりする場合、それぞれにコードをを書いたりしなくてはいけませんし、また注意点としては、レイアウトに凝ろうとすると、手動でテンプレートファイルなどを編集して調整をする必要があります。そのため、複雑なものには向いてませんが、短期間に単一テーブルを管理する、編集したり更新したりするというアプリケーションを作るには非常に適しています。

続いてのレクチャーでは、このScaffoldingを実際に実行していきます。