|
||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||
| RoRのデータ受け取り方法を修正する | ||||||||||
|
RoRのActiveResourceはPOSTされたデータのcontentTypeを識別します。「application/x-www-form- urlencoded」であればWebブラウザのフォームから、「application/xml」であればXMLデータとして自動的にハッシュに変換します。このためコントローラではどのタイプのデータでPOSTされたのか気にする必要はありません。 しかしFlashでのContentTypeの設定はActionScript 3.0、FlashPlayer 9以上から可能となっており、Flash8以前のバージョンではContentTypeを設定することができません。そのためここでは汎用的に利用するため「lzdata」というパラメータを追加し、ここにXMLデータを設定しています。RoR側は「before_filter」を使用して「lzdata」があればXMLデータとしてハッシュ化するように設定します。 laszlodemo/app/controllers/application.rb
class ApplicationController < ActionController::Base
次に、XMLフォーマットでリクエストされた際の正常/異常をXML形式でレスポンスするため、customers_controllerのPOST/PUT/DELETEメソッドを次のように修正します。 laszlodemo/app/controllers/customers_controller.rb(一部)
# POST /customers
それではLZXに戻り、保存と削除ボタンを追加したrestgridを作成しましょう。<attribute>タグでクラスのプロパティを設定します。ここでは「削除」「保存」ボタンのvisibleとRESTリクエストのURLをプロパティとして作成しました。 次のコードでは新規データ作成用のパブリックメソッド「createdata」と内部で使用するためのプライベートメソッドを作成しています。プライベートメソッドには<!--- @keywords private -->コメントを追加してドキュメントに出力されないようにしています。ただしLZX言語ではprivateの概念がありませんので外部からアクセスすることは可能です。 post/delete/put/getのアクションと対象となるオブジェクトのURLを指定してRESTリクエストするために、下のコード内のrequestメソッドが重要なメソッドとなっています。リクエストの結果をdatapointerでチェックし、異常の場合はデバッグウィンドウにエラーメッセージを表示、正常の場合はリクエストタイプによって必要な処理を追加しています。 restgrid.lzx
<library>
*restgrid.lzxの「<!--- @keywords private データ削除 -->」の項目の前に、「<!--- 新規データ作成 -->」を追加訂正します。(2007/11/21) |
||||||||||
|
前のページ 1 2 3 次のページ |
||||||||||
|
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||
|
|
||||||||||
|
||||||||||

