2011-01-09 6 views
1

私はバックエンドにFlashアプリケーションを使用しています。私はポストを使ってフラッシュからパラームの束をレールに送る必要がある。私users_controllerでレールアクションは、レジスタレールでのPOSTの指定3ルートとFlashからの呼び出し

私のroutesファイルが

このような
resources :users 

    match 'register' => 'Users#register', :via => :post 

に見えるのActionScriptは、私はFlashで取得していますエラーがIO_ERRORあるこの

var vars:URLVariables = new URLVariables(); 
vars.first_name = "First"; 
vars.last_name = "Last"; 
vars.address = "555 Mysteet Rd."; 
vars.email = "[email protected]"; 
vars.city = "The Hill"; 
vars.provice = "KY"; 
vars.postal_code = "55555"; 

var request : URLRequest = new URLRequest("/register"); 
request.method = URLRequestMethod.POST; 
request.data = vars; 

var loader : URLLoader = new URLLoader(); 
loader.dataFormat = URLLoaderDataFormat.TEXT; 
loader.addEventListener(Event.COMPLETE, registerHandler); 
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); 
loader.load(request); 

ようになりますIと呼ばれていますストリーミングイベントbla bla bla witchは通常、呼び出しているURLが存在しないことを示します。 request.methodをGETに変更すると、呼び出しは機能しますが、送信されるデータの長さをGETが処理できないため、すべてのデータがレールに送信されるわけではありません。

+0

、フラッシュから投稿されたまさに見て、それが誤りである場合も(送り返される応答ページ、おそらくデバッグ情報付き)、私はhttp://www.charlesproxy.comをお薦めします。 –

答えて

4

コントローラとアクションはどのように見えますか?

Flash/FlashからRailsなどのAPIタイプの呼び出しでは、カスタムルーティングは使用しません。むしろ、私はRESTfulなアクションに頼っています。だから私は呼んでいる:

/ユーザー/作成/

あなたがのためにあなたのリソース宣言したので:あなたのルートでユーザーを、あなたは(あなたがRESTfulなアクションを作成してもらうと仮定して)場所に、このルーティングを持っている必要があります。

詳細を教えてください。もっと手伝ってください。

[編集] IMを介したマットから

詳細:

  • コントローラが登録
  • ユーザーと行動されているPOSTが正常にレールで受け取ったが、エラー

    にスローされ

  • ActionController :: InvalidAuthenticityToken

セキュリティのために、Rails 3は隠しフォームフィールドを、RailsコントローラへのPOSTで期待されるトークンで追加します。このPOSTはFlashから発生しているため、このトークンは明らかに見つからず、このエラーが発生します。

、問題を修正して、コントローラのための真正性チェックを無効にするには、次のデバッグのために

skip_before_filter :verify_authenticity_token 
+0

は、トリックをしっかりやり直してくれました。 – mattwallace

+0

まず第一に、あなたはいくつかの**フィルタの前に**作業実行する必要があります。 'skip_before_filter:verify_authenticity_token、:だけ=>を[:your_action] before_filter:semi_verify_authenticity_token、:のみ=> [:your_action]' 次に、必要トークンの信頼性をいつチェックするかを定義する関数: 'def semi_verify_authenticity_token verify_authenticity_token request.xhr? #その他の基準を使用する場合 end' [ここ]から引用した情報(http://www.patricktulskie。com/2010/04/skip-rails-authenticitytoken-check-sometimes /) – dgm