« BasicRelationalのチュートリアル | チュートリアル | Helperメソッドのチュートリアル »
Railsは、コントローラの開発を開始するための方法を提供します。この方法は、モデルの中でのデータ参照とモデルデータの追加、削除、表示、リスト化を可能にします。
この方法はscaffoldingと呼ばれ、問題に取り掛かるための一時的なフレームワークを構成します。それから、初期のメソッドを独自のメソッドに置き換えることができます。
この例は、すでにBasicRelationalのチュートリアルで述べたようにデータベースの設定されていることを前提としています。以下は、この例で用いるSQLスキーマです(チュートリアルで以前作成したものと同じです)。
この例を適切に動作させるためには、friends_controller.rbで定義されたいくつかのメソッドと、それい対応するビューのrhtmlファイルを削除する必要があります。これらのメソッドやビューが定義されていると、scaffoldingが提供するメソッドをオーバーライドし、この例の目的をだめにするでしょう。scaffoldingが提供するメソッドやビューにもはや満足できなくなったら、あとでデフォルトのメソッドやビューをオーバーライドするために再定義することができます。
app/controllers/friends_controller.rbを編集し、listとnew、editの各メソッドを削除(または名前変更)してください。
それから、app/view/friends/のlist.rhtmlとnew.rhtml,、edit.rhtmlを削除(または名前変更)してください。
チュートリアルのずいぶん前のステップで生成したデータベースを使います。
便宜上、チュートリアルのこの点を補うsqlを示します。
CREATE TABLE `people` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(50) NOT NULL default '', `street1` varchar(70) NOT NULL default '', `street2` varchar(70) NOT NULL default '', `city` varchar(70) NOT NULL default '', `state` char(2) NOT NULL default '', `zip` varchar(10) NOT NULL default '', PRIMARY KEY (`id`), KEY `name` (`name`) ) TYPE=MyISAM AUTO_INCREMENT=5 ; INSERT INTO `people` VALUES (1, 'Superman', 'PO Box 1', '123 Somewhere', 'Smallville', 'KS', '123456'); # -------------------------------------------------------- # # Table structure for table `phones` # CREATE TABLE `phones` ( `id` int(10) unsigned NOT NULL auto_increment, `person_id` int(10) unsigned NOT NULL default '0', `phone` varchar(15) NOT NULL default '', PRIMARY KEY (`id`), KEY `people_id` (`person_id`), KEY `phone` (`phone`) ) TYPE=MyISAM AUTO_INCREMENT=3 ; # # Dumping data for table `phones` # INSERT INTO `phones` VALUES (1, 1, '6203423065'); INSERT INTO `phones` VALUES (2, 1, '6204811303');
チュートリアルの以前のステップでは、データの操作はかなり制限されていました。単純にコントローラにコードを一行追加することによって、初期の開発中に便利ないくつかの簡単な機能を得ることができます。これをコントローラクラス(friends_controller.rb)
に追加してください。
scaffold :person
追加されるメソッドはlistとshow、destroy、new、create、edit、updateです。http://rails/friends/listにアクセスすれば、listメソッドを見ることができます。また、peopleテーブルの中のデータを見たり編集したりすることができます。いろいろいじってみて、URLSがどのように機能するかを感じ取るためにソースをみてください(より簡単にURLを取り扱う方法をすぐに見ることになるでしょう)。
AjaxScaffold : 別のスタート地点
代わりに、よりいっそう洗練された、一部では製品レベルにあるとさえ言われるscaffoldを提供するAjaxScaffoldを使うことができます。そしてそのドキュメントはこのページ掲載されているどのドキュメントよりも簡潔だと思います。試してみてください。