scaffold_resource を使ってみた

2007/02/1

先ほどから Rails でチェックシートアプリケーションを作っています。チェック項目を登録して、チェック完了時にチェックしていくだけの単純なアプリケーションになる予定です。よく Excel でチェックシートを作りますが、項目ごとにチェック日時や担当者名を記入していくのは結構辛いです。

ところで、先ごろ Ruby on Rails 1.2 がリリースされ、いくつかの新しい機能が利用できるようになっています。その中に、アプリケーションをより RESTFul にするための機能が含まれています。こちらに、 Rails の作者 David Heinemeier Hansson が日本 Ruby カンファレンス 2006 で Rails と REST について話した内容がまとめてあります。

今回、この機能を使ってみました。

具体的には、チェックシートを表すモデルを操作する場合、従来は

ruby script/generate scaffold Sheet

としたあとでマイグレーションファイルを編集していたところを、

ruby script/generate scaffold_resource Sheet name:string

などとするだけで、name 属性が定義された Sheet モデルと、Sheet に RESTFul にアクセスできる名前付きルートが追加されます。ルーティング設定ファイル routes.rb には

map.resources :sheets

という設定が追加されており、この一行で RESTFull なアクセスを補助する名前付きルートが設定されます。

名前付きルート コントローラ アクション
sheets SheetsController index (GET の場合)
create (POST の場合)
sheet SheetsController show (GET の場合)
update (PUT の場合)
delete (DELETE の場合)
new_sheet SheetsController new
edit_sheet SheetsController edit

同じ名前付きルートでも、どの HTTP メソッドが指定されたかによって呼び出されるアクションが異なります。詳しくは ActionController::Resources の API リファレンスに書いてあります。

このように、従来の scaffold とかなり異なっているため、慣れるまでは余計に時間がかかってしまいそうですが、確かに記述量が少なくなって DRY になるかもしれません。またリソース操作が CRUD に限定されやすくなるのは、Rails 的には良いことなのでしょう。

One Response to “scaffold_resource を使ってみた”


  1. […] scaffold とは異なり、REST 風味のリソース操作が可能になるというのは以前に書きましたが、scaffold_resource を利用すると、さらにリソースの XML […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。