 |

|
Ruby on RailsとAdobe AIRでデスクトップアプリを作る |
第2回:新機能「scaffold_resource」とは?
著者:ワイズノット 増井 雄一郎 2007/9/12
|
|
|
1 2 3 次のページ
|
 |
Ruby on Railsの新機能で付箋紙を作る
|
「第1回:付箋紙アプリケーションを作ろう!」では、Ruby on Rails(以下、RoR)1.2で追加された新機能「scaffold_resource」を使って、付箋紙の情報(Stickyモデル)を読み書きするStickiesコントローラを生成しました。
このscaffold_resourceで生成されたコントローラは、通常のscaffoldと異なる「RESTful」という呼び出し方法をサポートしています。この方法では外部のプログラムから接続がしやすいように、HTMLではなくXML形式でデータを出力します。
さて今回はStickiesコントローラの動きを追いかけてみましょう。
|
Stickiesコントローラの仕組み
|
まずはルートファイルです。通常のコントローラは「/コントローラ名/アクション名/id」という形でアクセスします。これについては「config/route.rb」の中にあるルールで定義されています(リスト1)。
リスト1:config/route.rb一部抜粋
map.connect ':controller/:action/:id.:format'
map.connect ':controller/:action/:id'
「第1回:付箋紙アプリケーションを作ろう!」の最後で試したように、付箋紙一覧をXMLで取り出す際には「http://localhost:3000/stickies.xml」の形でアクセスします。このため、Stickies.xmlコントローラを呼び出そうとします。
実はscaffold_resourceは、モデルやコントローラを生成すると同時に、ルートファイルに以下の1行を追加しているのです。
map.resources :stickies
この「map.resource」は、RESTfulを使ったコントローラ用のルートマッピング指定です。これを使うことで、表1のようなURLをルートするようになります。一番の違いは、同じURLでもアクセスするHTTPメソッドによって、呼び出されるアクションが違うことです。
呼び出されるアクション |
URL |
HTTPメソッド |
index |
/stickies |
GET |
show |
/stickies/1 |
GET |
new |
/stickies/new |
GET |
create |
/stickies |
POST |
edit |
/stickies/1;edit |
GET |
update |
/stickies/1 |
PUT |
destroy |
/stickies/1 |
DELETE |
表1:呼び出されるアクションとURL、メソッドの関係
RESTでは、URLを名詞、HTTPメソッドを動詞と考えます。例えばStickyのidが1をあらわすURLは「/stickies/1」になるのです。これを表示するためにはGETメソッドで、更新する場合にはPUTメソッドでそれぞれアクセスを行います。

図1:付箋紙情報へのアクセス
|
1 2 3 次のページ
|

|
|

|
著者プロフィール
株式会社ワイズノット 増井 雄一郎
PukiWikiなどのオープンソース活動を経て、2005年からRuby on Railsに的を絞り、2006年はRubyに関する仕事のみで生計をたてる。これまでのフリー活動から転身し、アメリカ行きを目指して2007年4月に(株)ワイズノットに入社。クロスメディア事業部でSaaSプラットフォームの構築に従事。現在の興味はテキストマイニング。
|
|
|
|