2007-09-10

Railsで、RIAからのCRUDファンクション呼び出しを処理するコントローラの雛形を生成する

Railsでは、データベースエンティティに対するCRUD操作を行うための最低限の Web UIを生成する仕組み(scaffold)があるが、RIAからコールするためにはレスポンスタイプが text/htmlでは困るし、scaffoldをそのまま適用するには対象となるテーブルが ActiveRecordの期待する構造や命名規約を持つことが要求されるため、レガシーデータを取り扱う場合には却って手間をかける事になりかねない。

ここでは、scaffoldでの全自動生成を諦め、せめてコントローラとビューの雛形だけでも機械生成してみることにする。

$ script/generate controller 名前 list show create update destroy

で、
http://railshost:3000/名前/list - 一覧
http://railshost:3000/名前/show - 詳細
http://railshost:3000/名前/create - 作成
http://railshost:3000/名前/update - 更新
http://railshost:3000/名前/destroy - 削除

の各アクションを持つコントローラ
app/controllers/名前_controller.rb
と、それぞれのビューとなる
app/views/名前/(list|show|create|update|destroy).rhtml
ファイルが生成される。(アクション名は scaffoldを参考にしている)

"名前" には、(Rails的な規約に従うならば)操作対象となるエンティティ名の複数形を用いる。

rhtmlファイルは rxml にリネームする(残念ながら、最初から rxmlを生成してくれるようなジェネレータオプションを見つけられなかった)。これによって、text/htmlのかわりに application/xmlの文書を呼び出し元へレスポンスすることができる。rxmlファイルはeRuby的な書式ではなく Builder::XmlMarkupを使用したちょっとDSLっぽいプログラムコードで記述する。

各アクションもビューも中身は空なので自分で書く必要があるが、通信相手が RIAの場合は UI要素を全く記述する必要がないのでいくぶんか楽だろう。

ラベル:

0 件のコメント:

コメントを投稿

<< ホーム