RailsにFlashからpostしたり取り出したりする

カテゴリー: 未分類 タグ: , , , , ,

Railsのscaffoldでさくっと作ったインタフェースって、HTTP-POSTからSQLに保存したり取り出したりもできて色々プロトタイプを作るのに便利なのでまとめておく。

ためたデータの管理もできるし。

■Rails側の準備

まずrailsを入れる。

Macの人は既に入っているはず。Windowsなら、ActiveScriptRubyを入れてパス通すと、gemコマンドが入るのでgem install railsすればrailsコマンドが使えるようになる。DBはSQLiteのdll版をc:\windows\system32に入れればできる様になるはず。

railsでtestbbsというプロジェクトを作って、そこにscaffoldでentry(投稿)というmodelを作る。entryには、name(投稿者)とmessage(本文)が入る。

rails testbbs

cd testbbs

ruby script/generate scaffold entry name:string message:text

rake db:migrate

(単数形に注意)

webサーバーを立ち上げる

ruby script/server

http://localhost:3000/entriesから見れるようになっている。はず。(複数形に注意)

こんなページができている。ここからentryを増やしたり消したりもできる。

post from flash to rails

ここまでで、http://localhost:3000/entries/newから投稿できるのと、http://localhost:3000/entries.xmlから一覧を取得できるようになった。

Source Code (Ruby on Rails 2.0.2)

■Flashから投稿する

HTTP POSTで行う。

今回作ったもの(動きます)

Source Code (AS3 / Flash CS3 + Flashdevelop)

今回もFlashDevelop上でAS3書いて、FlashCS3オーサリング/コンパイルした。

こいつでPOSTすると、http://localhost:3000/entriesに結果が出るようになる。

post from flash to rails

どうやってるかというとまず

http://localhost:3000/entries/newを見ると

  

    Name        

  

    Message

       

  

       

という風にPOSTしているので、entry[name]とentry[message]をパラメータで渡せばいいとわかる。



AS3でhttp postする

HttpPost.as

var params:URLVariables = new URLVariables();

params.decode(”entry[name]=” + _textInputName.text);

params.decode(”entry[message]=” + _textAreaPost.text);

var request:URLRequest = new URLRequest(”http://localhost:3000/entries”);

request.method = URLRequestMethod.POST;

request.data = params;

var urlLoader:URLLoader = new URLLoader();

urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

urlLoader.load(request);

(Railsの複数形・単数形の変化は注意)

返り値を受け取るには、

関数を宣言して

public function onPostComplete(e:Event):void {

  var params:URLVariables = new URLVariables(e.target.data);

  trace(”received: ” + unescape(params.toString()));

}

関数をURLLoaderのインスタンスに登録しておけばいい

urlLoader.addEventListener(Event.COMPLETE, onPostComplete); // post完了イベントに関数登録

今回帰ってきた値。HTMLだ。

post from flash

received: 
       ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>





  

  

  


Entry was successfully created.


  Name:

  shokai


  Message:

  post from flash

Edit |

Back




  1. コメントはまだありません。
  1. トラックバックはまだありません。
track feed