|
||||||||||||||||||||||||
| 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'
「第1回:付箋紙アプリケーションを作ろう!」の最後で試したように、付箋紙一覧をXMLで取り出す際には「http://localhost:3000/stickies.xml」の形でアクセスします。このため、Stickies.xmlコントローラを呼び出そうとします。 実はscaffold_resourceは、モデルやコントローラを生成すると同時に、ルートファイルに以下の1行を追加しているのです。
map.resources :stickies
この「map.resource」は、RESTfulを使ったコントローラ用のルートマッピング指定です。これを使うことで、表1のようなURLをルートするようになります。一番の違いは、同じURLでもアクセスするHTTPメソッドによって、呼び出されるアクションが違うことです。
表1:呼び出されるアクションとURL、メソッドの関係 RESTでは、URLを名詞、HTTPメソッドを動詞と考えます。例えばStickyのidが1をあらわすURLは「/stickies/1」になるのです。これを表示するためにはGETメソッドで、更新する場合にはPUTメソッドでそれぞれアクセスを行います。 ![]() 図1:付箋紙情報へのアクセス |
||||||||||||||||||||||||
|
1 2 3 次のページ |
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||


