RailsにFlashからpostしたり取り出したりする
2008 年 3 月 29 日 土曜日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を増やしたり消したりもできる。

ここまでで、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に結果が出るようになる。

どうやってるかというとまず
http://localhost:3000/entries/newを見ると
<form action="/entries" class="new_entry" id="new_entry" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="a360f92a6a91d6c588d319f1ab475e9abbb22d9d" /></div>
<p>
<b>Name</b><br />
<input id="entry_name" name="entry[name]" size="30" type="text" />
</p><p>
<b>Message</b><br /><textarea cols="40" id="entry_message" name="entry[message]" rows="20"></textarea>
</p><p>
<input id="entry_submit" name="commit" type="submit" value="Create" />
</p>
</form>
という風にPOSTしているので、entry[name]とentry[message]をパラメータで渡せばいいとわかる。






