この部分を拡張するとHTMLやXML以外にも様々なフォーマットに対応することができます。例えばAjaxなどでよく使われる「JSON」フォーマットをサポートしたい場合には、6行目と7行目の間に以下の1行を追加してください。
format.json { render :json => @stickies.to_json }
なおJSONフォーマットについては下記の連載を参考にしてください。
これでWebブラウザから「http://localhost:3000/stickies.json」にアクセスすると、リスト3のようなJSONフォーマットのファイルをダウンロードすることができます。
リスト3:JSONフォーマットのファイル
[{attributes: {x: "0.5", updated_at: "2007-08-26 05:36:23", body: "test", id: "1", height: "100", created_at: "2007-08-26 05:36:00", width: "300", y: "0.5"}}]
このようにscaffold_resourceで作ったコントローラは、HTML以外の様々なフォーマットに対応させることができます。
また「http://localhost:3000/stickies」にアクセスしてDestroyリンクのソースコードをみてみましょう。ソースコードには、onclick属性の中で複雑なJavascriptが書かれています。これはprototype.jsを使い、POSTメソッドで_method=deleteを送信し、擬似的にDELETEメソッドで送信してます。
|