<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>橋本商会 &#187; Rails</title>
	<atom:link href="http://shokai.org/blog/archives/tag/rails/feed" rel="self" type="application/rss+xml" />
	<link>http://shokai.org/blog</link>
	<description>なんか作ったりした記録を忘れないうちに書くblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 13:32:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>Rails + Physical Computingする時の注意点</title>
		<link>http://shokai.org/blog/archives/4094</link>
		<comments>http://shokai.org/blog/archives/4094#comments</comments>
		<pubDate>Sun, 11 Jan 2009 21:43:34 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[PhysicalComputing]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=4094</guid>
		<description><![CDATA[最近まわりでRailsが流行っているんだけど、なんだか2ケタ以上の人が「webサービスと何か(?)をするにはRuby on Railsを使えば全部できる」という盛大な勘違いを起こしているので説明用資料を書いておく。Rai [...]]]></description>
			<content:encoded><![CDATA[<p>
最近まわりでRailsが流行っているんだけど、なんだか2ケタ以上の人が「webサービスと何か(?)をするにはRuby on Railsを使えば全部できる」という盛大な勘違いを起こしているので説明用資料を書いておく。Railsはそんなに万能ではないです。<br />
<br />
Railsはwebアプリケーションを簡単に作れるMVCフレームワークで、HTTPを通してwebブラウザから使う事を前提にしている。マイコンとProcessingを接続してガジェットを作るのとは別の常識があります。<br />
<br />
<br />
<br />
■Railsが向いていること<br />
Railsは、おおざっぱに列挙するとこんなアプリケーションに向いています（無理すれば変な事も可能だけど後述）<br />
<ul>
  <li>アクセスしたURLに応じて異なるHTMLやXMLが表示される</li>
  <li>後ろにSQLなどのデータベースがあって、データを溜めたり取り出したりする</li>
  <li>ユーザ登録してログイン/ログアウトできて、同じURLでもユーザ毎に違うHTML表示が出る</li>
  <li>Formがあって、テキストを打ち込んで「投稿」すると保存される</li>
</ul>
<br />
普通のwebサービスを作るのに向いています。例えば<br />
<ul>
  <li>mixiとかFacebookのようなSNS</li>
  <li>WordPressやMovableTypeのように記事をFormに打ち込んでデータベースに保存して、週毎/記事毎の様々な表示で同じデータを使い回す</li>
  <li>twitterや掲示板みたいなもの</li>
</ul>
を作るのに向いている。<br />
ようするに、あるURLにHTTP GETでアクセスすると何か表示される。そしてHTTP POSTするとデータを溜めるという機能がある。<br />
<br />
<span id="more-4094"></span><br />
<br />
<br />
■Railsが向いていないこと<br />
<ul>
  <li>あるwebサービスを定期的に監視して、更新があったらデータを取ってきて、別のサービスやデバイスに転送する<br />
	<ul>
	  <li>定期的な処理はcronを回すかdaemonを作るべき。どうしてもRailsを表示に使いたければ、定期的な処理をするプログラムがRailsのデータベースに書き込む。それをRailsが読み出す。</li>
	</ul>
  </li>
  <li>デバイスからシリアル通信でデータを送り続けて、Railsの表示を変化させる<br />
    <ul>
      <li>無理。基本的に「あるURLにHTTPでアクセスしたら、そのURLに応じたHTMLやXMLがダウンロードできる」ものだと思うべき。webページの表示をサーバー側からpushして更新する事はComet等を使わなければできないので（難しいからやめておいたほうがいい）、簡単にsetIntervalで30秒毎にXmlHttpRequestしてRailsにデータを取りに行くべき。</li>
    </ul>
  </li>
  <li>
    FlashのXMLSocketや、XPortのシリアル-TCPSocket変換で接続してデータをやりとりしたい<br />
    <ul>
      <li>生のTCP/IPではなく、HTTPでやるべき。FlashならLoadVarsや<a href="http://shokai.org/blog/archives/1509">URLLoaderを使う</a>。XPortなら<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113849/shokai-22">Making Things Talk</a>という本にHTTPリクエストを作る方法が書いてある。もしくは、Socketサーバープログラムを自作してRailsのデータベースに書き込む。</li>
    </ul>
  </li>
</ul>
とにかく、HTTP以外でRailsとやりとりするのは無理です。間に何か別のプログラムを挟んで、そいつとデータベースを共有するとかする。<br />
<br />
<br />
<br />
■Railsが必要ない場合<br />
話を聞いているとそもそもRailsで作る必要が無くて、RubyやPythonで小さなプログラムを作ってcronで定期的に実行するだけで済む事がよくある<br />
<ul>
  <li>安全にユーザ認証する必要がない</li>
  <li>何人も同時にアクセスしない</li>
  <li>そもそもデータベースにデータを蓄積しなくて、webサービスとデバイス、webサービスとwebサービスのトンネルを作りたいだけ</li>
  <li>データベースに溜めるけど、トンネルするデータを一時的に保存しておきたいだけ<br />
    <ul><li><a href="http://shokai.org/blog/archives/1504">RailsなしでActiveRecordだけ使ってSQLiteを読み書きすればいい</a></li></ul>
  </li>
</ul>
例：<a href="http://shokai.org/blog/archives/1501">橋本商会  Twitterアカウント「DNPハウス」として発言できる okTwitter を作った</a><br />
例：<a href="http://shokai.org/blog/archives/4036">橋本商会  スーパーボット大戦</a><br />
<br />
<br />
<br />
■まずクローラを作る<br />
多くのwebサービスはデータ取得APIに制限をつけている。サービスにとってデータとユーザこそが財産だからという事と、ユーザデータ全てにアクセス可能だとプライバシーの問題があるからだと思う。<br />
<ul>
  <li>Twitterはユーザ毎に最新3200postしか取得できない</li>
  <li>del.icio.usは他人のブックマークは最新100件しか取得できない</li>
  <li>Flickrは位置情報付き写真のみ最新4000件しか検索結果が出ない</li>
  <li>WebAPIは1日あたりの呼び出し回数に制限がかかっている事が多い</li>
</ul>
いちどクローラでDBに保存して、それをRailsでXMLなどのフォーマットに直して出力して、Flash等で読み込んで表示するのはアリだと思う。<br />
例：<a href="http://shokai.org/blog/archives/1533">橋本商会  GoogleEarth上でFlickrの位置情報付き写真を見れるサービスを作った</a><br />
<br />
<br />
<br />
■危険ワード<br />
以下のような曖昧な単語を使っている時は、設計ができていないか、そもそもコンピュータで実現不可能な問題を扱っている場合が多い。<br />
<ul>
<li>通信して〜〜<br />
<ul><li>HTTPか、TCP/IPそのままか、XMLSocketか、とにかく何で通信するか明確にする。webの世界はセキュリティを考慮した仕組みになっているので、通信の手順に制限がかかっている事が多い。クロスドメインとか。</li></ul></li>
<li>似た人や物を検索して〜〜<br />
<ul><li>「似ている」ではなくて「数値的に+-50以内」や「完全に値が一致する」であれば簡単にできる。「似ている」という事をコンピュータで計算するのはとても難しくて、一つの研究分野なのでまず<a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113644/shokai-22">集合知プログラミング</a>等を読むべき。また、前述の通りWebAPIからのデータ取得は制限されているのも注意。</li></ul>
</li>
<li>タグを付けて〜〜<br />
<ul><li>YouTube、delicious、ニコニコ動画などはそれぞれ「タグ」と呼んでいる機能へのユーザ毎のアクセス権限が異なり、webサービス内のコミュニティのあり方のデザインに直結している。安易に「タグ付けて分類」とか言わない方がいい。</li></ul>
</li>
</ul>
<br />
<br />
<br />
■もっと調べるべき<br />
webアプリはスイッチとマイコンとFlashとProcessingとは違う常識で動いているので、もっと勉強するべき。<br />
<ul>
  <li>HTTP</li>
  <li>セッション</li>
  <li>Cookie</li>
  <li>GETとPOST</li>
  <li>クロスドメイン</li>
</ul<br />
について調べると理解が深まる。<br />
<br />
<br />
また、Ruby on Railsでwebアプリケーションを作る事と、Rubyそのものでプログラムを書く事は完全に別の物として見た方が良いと思う。<br />
Railsはscaffoldやmigrateの仕組み、ファイルの配置が良くできていて、それを使うためにターミナルで叩くコマンドを覚えて管理する部分が便利でもあり、またそのノウハウに学習コストもかかる。<br />
Rubyはgemが便利でオブジェクト指向機能が綺麗な、普通のプログラミング言語。<br />
<br />
ひととおりscaffoldやmigrateやプラグインの仕組みを理解したら、Railsで使っているActiveRecordやActiveResource等の部品の仕組みを見ていくと良いと思う。<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/4094/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoogleEarth上でFlickrの位置情報付き写真を見れるサービスを作った</title>
		<link>http://shokai.org/blog/archives/1533</link>
		<comments>http://shokai.org/blog/archives/1533#comments</comments>
		<pubDate>Wed, 07 May 2008 19:31:39 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[GoogleEarth]]></category>
		<category><![CDATA[KML]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shokai.org/blog/?p=1533</guid>
		<description><![CDATA[blogを書けなくて(MTが再構築できなくて)もう1ヶ月ぐらい前に作ったものになるけど、春休みにRuby on Railsのお勉強をしていて、その最終成果物としてGoogleEarth上でFlickrのGeoTag付き写 [...]]]></description>
			<content:encoded><![CDATA[<p>
<p>blogを書けなくて(MTが再構築できなくて)もう1ヶ月ぐらい前に作ったものになるけど、春休みにRuby on Railsのお勉強をしていて、その最終成果物として<a href="http://shokai.mag.keio.ac.jp/geophoto/">GoogleEarth上でFlickrのGeoTag付き写真を見れるサービス</a>を作ったのでまとめておく。</p>
<p>ついでに、緯度経度でFlickrの写真を検索できるAPIも公開してある。</p>
<p><a title="screen-capture.png by shokai, on Flickr" href="http://www.flickr.com/photos/shokai/2406826369/"><img src="http://farm4.static.flickr.com/3062/2406826369_dccc4835cf.jpg" alt="screen-capture.png" width="500" height="333" /></a></p>
<p>■実装方法<br /><br />
１．Flickrのタグ検索で、geotagが付いている写真を定期的にクロールしてきて、写真のURL、緯度経度をRailsのDBに溜める（photo modelに溜める）<br /><br />
２．GETパラメータで緯度経度をRailsに渡して、photo modelを検索する<br /><br />
３．検索結果をGoogleEarthで表示できるように、kml出力のViewを作る<br /><br />
４．GoogleEarthで視点が変わる毎にサーバーに問い合わせて、返ってきたkmlを表示するkmlを作る<br /><br />
５．mongrelでRailsを動かして、apache2のmod_proxy_balancerでRailsのURLをサブディレクトリに見せかける</p>
<p>こんな感じで。一番時間がかかったのが１のクローラの実装で、これは俺がRuby初心者すぎて2日ぐらいかかった。あとは、デンマーク行きの飛行機と帰りの空港からのバスでやったので5時間ぐらい。この辺は、データを溜めて、クライアントからのリクエストに基づいてフォーマットを決めて吐き出す部分が最初からできてるRailsのおかげ。</p>
<p>■１．geotag付き写真クローラ<br /><br />
まずFlickrはタグ検索ができるけど、数値じゃなくて「〜〜を含む文字列」としてしか検索できないので、例えば「北緯35度東経135度周辺の写真が欲しい」という時は使えない。なので、あらかじめメタデータを集めておいて、数値として範囲を指定して検索できるようにしておく。</p>
<p>geotagは小数点ありの値（geo:lat=35.2341など）なんだけど、普通にgeo:latやgeo:lonを含む写真一覧をFlickr APIから検索しても小数点無しのタグしか手に入らない。<br /><br />
小数点ありのタグを手に入れるために、Net::FlickrでFlickrAPIからタグ検索して、<br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080312/1205309919">Net::Flickrで全public photoからタグ検索 &#8211; shokaiの日記</a><br /><br />
&#8220;geotagged&#8221;タグを含む写真をリストアップして、それから再度photo_idを使ってFlickrAPIのphotos.getInfoメソッドを使ってtagのraw attributeを見なければならなかった。<br /><br />
→ <a href="http://shokai.org/blog/archives/1507">s.h.log  RubyでFlickr APIのphotos.getInfoを呼ぶ</a></p>
<p>クローラ自体はRailsで実装されていなくて、ActiveRecordだけを使ってcronで1時間毎に実行されている。<br /><br />
→ <a href="http://shokai.org/blog/archives/1504">s.h.log  RailsなしでActiveRecordだけ使って、SQLiteを読み書きする</a><br /><br />
SQLiteのファイルがRailsと共有されているだけ。今回は、Rails側からの書き込みが無いので特に問題は起こらないだろうと判断した。</p>
<p>いまのところ10万枚の写真が集まった。SQLiteのファイルが欲しい人はあげます。</p>
<p>あと、クローラは連続でHTTPアクセスするとFlickrに悪い気がするので、適当にsleepを入れてみてるんだけど、そうすると実行に結構時間がかかる。これが、クローラを作って動かして直して作って…と繰り返す時に面倒だったが、和田さんに言われてscreenをデタッチ/アタッチするという技を覚えた。デタッチしておくと、sshを切断してもクローラが止まらなくて、アタッチしたら普通に続きからできる（もしくは結果が出てる）screenはクローラ作ってるときに重要。</p>
<p>■２．緯度経度をGETパラメータでRailsに渡して検索する</p>
</p>
<blockquote><p><p>photos.kml?lat=35&#038;lon=135&#038;size=thumb</p></p></blockquote>
<p>
<p>みたいな形式で、パラメータを渡してDBに溜めた写真を検索する。</p>
<p>→ <a href="http://d.hatena.ne.jp/shokai/20080408/1207638037">KMLを全部出すと多すぎたので、緯度経度を指定してその周囲の写真だけ出す &#8211; shokaiの日記</a><br /><br />
paramsで受け取れる。パラメータ名はシンボルになっているので注意。<br /><br />
controllerで、ActiveRecord::Baseのfind_by_sqlメソッドで普通に検索。（この方法だと四角い。PostgreSQLやMySQLの空間型を使えば丸くできるらしいがとりあえずSQLiteでやる）<br /><br />
そしてmodelの配列をViewに渡してやる。</p>
<p>■３．検索結果をGoogleEarthで表示できるように、kml出力のViewを作る<br /><br />
kml形式のviewを作る。views/photos/index.html.erb を参考にして、index.kml.erbを作ればok<br /><br />
mime-typeにkmlを追加しておく必要があった。<br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080403/1207179775">flickrのgeotagついてる写真を収集してたので、kml出力するようにした &#8211; shokaiの日記</a></p>
<p>結果は巨大なkmlになるので、Rails標準搭載のWEBrickだときつい。でかいときはhttpサーバーをmongrelに換える。<br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080331/1206925058">MongrelでRailsをデプロイ &#8211; shokaiの日記</a><br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080331/1206926410">apache2のサブディレクトリをmongrelで起動してるrailsにプロキシする &#8211; shokaiの日記</a></p>
<p>■４．GoogleEarthで移動する毎に検索するkmlを作る<br /><br />
GoogleEarthの表示を作っているkmlは、静的な表示だけでなく、NetworkLinkタグで別のKMLの内容をURLを指定して読み込める。さらにViewRefleshModeをonStopにすると、画面の移動が止まった時に再読み込みできる。<br /><br />
再読込時に、視点の緯度経度を[lookatLat][lookatLon]で取得できるので、</p>
</p>
<blockquote><p><p>lat=[lookatLat]&amp;lon=[lookatLon]</p></p></blockquote>
<p>
<p>としてNetworkLinkで読み込むkmlのURLの後ろにくっつけてやる事で、GETパラメータになる。<br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080408/1207638324">GoogleEarthで表示している場所の緯度経度から検索する &#8211; shokaiの日記</a></p>
<p>■５．mongrelでRailsを動かして、apache2のサブディレクトリに見えるようにする<br /><br />
デプロイ。<br /><br />
４まではMac OSX上でやって、ここからは<a href="http://d.hatena.ne.jp/shokai/20080218">大学院棟に置いたUbuntu</a>に移し替えた。RailsをSQLite+Mongrel環境で動かして、URLをapacheで隠すようにすると、Railsプロジェクトのディレクトリをそのまま移し替えるだけでほぼ動くので超楽。</p>
<p>→ <a href="http://d.hatena.ne.jp/shokai/20080408/1207647644">Flickrのgeotag写真を検索する &#8211; shokaiの日記</a><br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080331/1206926410">apache2のサブディレクトリをmongrelで起動してるrailsにプロキシする &#8211; shokaiの日記</a><br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080331/1206925058">MongrelでRailsをデプロイ &#8211; shokaiの日記</a><br /><br />
→ <a href="http://d.hatena.ne.jp/shokai/20080329/1206763523">Mongrel入れる &#8211; shokaiの日記</a></p>
<p>&#8212;&#8212;&#8212;&#8211;</p>
<p>こんな感じで、クローラの実装と、バックエンドのサービスとしてAPIを吐くためのRails、というのを覚えた。<br /><br />
今まで戦略的に「長い時間をかけたインタラクション」をするモノや、「データを共有した複数のモノと人とのインタラクション」を作る事を避けていたんだけど（ややこしくてプロトタイピングできないものは作らない方針なので）<br /><br />
Rails使うとサクサクとこのぐらいまではいけるようになったので、自分の得意なフィジカルなデバイス作成と合体させて何か新しい物を作る予定。</p>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/1533/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RailsにFlashからpostしたり取り出したりする</title>
		<link>http://shokai.org/blog/archives/1509</link>
		<comments>http://shokai.org/blog/archives/1509#comments</comments>
		<pubDate>Fri, 28 Mar 2008 23:56:13 +0000</pubDate>
		<dc:creator>shokai</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://shlog.sakura.ne.jp/blog/?p=1509</guid>
		<description><![CDATA[Railsのscaffoldでさくっと作ったインタフェースって、HTTP-POSTからSQLに保存したり取り出したりもできて色々プロトタイプを作るのに便利なのでまとめておく。 ためたデータの管理もできるし。 ■Rails [...]]]></description>
			<content:encoded><![CDATA[<p>
<p>Railsのscaffoldでさくっと作ったインタフェースって、HTTP-POSTからSQLに保存したり取り出したりもできて色々プロトタイプを作るのに便利なのでまとめておく。<br /><br />
ためたデータの管理もできるし。</p>
<p>■Rails側の準備<br /><br />
まずrailsを入れる。<br /><br />
Macの人は既に入っているはず。Windowsなら、ActiveScriptRubyを入れてパス通すと、gemコマンドが入るのでgem install railsすればrailsコマンドが使えるようになる。DBは<a href="http://www.sqlite.org/download.html">SQLiteのdll版</a>をc:\windows\system32に入れればできる様になるはず。</p>
<p>railsでtestbbsというプロジェクトを作って、そこにscaffoldでentry(投稿)というmodelを作る。entryには、name（投稿者）とmessage（本文）が入る。</p>
</p>
<blockquote><p><p>rails testbbs<br /><br />
cd testbbs<br /><br />
ruby script/generate scaffold entry name:string message:text<br /><br />
rake db:migrate</p></p></blockquote>
<p>
<p>（単数形に注意）</p>
<p>webサーバーを立ち上げる</p>
</p>
<blockquote><p><p>ruby script/server</p></p></blockquote>
<p>
<p><a href="http://localhost:3000/entries">http://localhost:3000/entries</a>から見れるようになっている。はず。（複数形に注意）</p>
<p>こんなページができている。ここからentryを増やしたり消したりもできる。<br /><br />
<a href="http://www.flickr.com/photos/shokai/2369280169/" title="post from flash to rails by shokai, on Flickr"><img src="http://farm3.static.flickr.com/2099/2369280169_c2465cd6e0_o.png" width="377" height="228" alt="post from flash to rails" /></a></p>
<p>ここまでで、<a href="http://localhost:3000/entries/new">http://localhost:3000/entries/new</a>から投稿できるのと、<a href="http://localhost:3000/entries.xml">http://localhost:3000/entries.xml</a>から一覧を取得できるようになった。</p>
<p>→<a href="http://shokai.org/archive/ruby/rails/0803_testbbs/">Source Code (Ruby on Rails 2.0.2)</a></p>
<p>■Flashから投稿する<br /><br />
HTTP POSTで行う。</p>
<p>今回作ったもの（動きます）<br /><br />
<object width="410" height="200"><param name="movie" value="http://shokai.org/archive/as3/0803_HTTP/HttpPost.swf"></param><embed src="http://shokai.org/archive/as3/0803_HTTP/HttpPost.swf" type="application/x-shockwave-flash" width="410" height="200"></embed></object></p>
<p><a href="http://shokai.org/archive/as3/0803_HTTP/">Source Code (AS3 / Flash CS3 + Flashdevelop)</a><br /><br />
今回もFlashDevelop上でAS3書いて、FlashCS3オーサリング/コンパイルした。</p>
<p>こいつでPOSTすると、<a href="http://localhost:3000/entries">http://localhost:3000/entries</a>に結果が出るようになる。<br /><br />
<a href="http://www.flickr.com/photos/shokai/2369259181/" title="post from flash to rails by shokai, on Flickr"><img src="http://farm3.static.flickr.com/2238/2369259181_201a21aaba_o.png" width="368" height="298" alt="post from flash to rails" /></a></p>
<p>どうやってるかというとまず<br /><br />
<a href="http://localhost:3000/entries/new">http://localhost:3000/entries/new</a>を見ると</p>
</p>
<blockquote><p><p><formaction="/entries"class="new_entry"id="new_entry"method="post"><divstyle="margin:0;padding:0"><inputname="authenticity_token"type="hidden"value="a360f92a6a91d6c588d319f1ab475e9abbb22d9d"/></div>
<p>
<b>Name</b><br/>
<inputid="entry_name"name="entry[name]"size="30"type="text"/>
</p></p>
<p><p>
<b>Message</b><br/></p>
<p><textareacols="40"id="entry_message"name="entry[message]"rows="20"></textarea>
</p></p>
<p><p>
<inputid="entry_submit"name="commit"type="submit"value="Create"/>
</p>
</form>
</p></p></blockquote>
<p>
<p>という風にPOSTしているので、entry[name]とentry[message]をパラメータで渡せばいいとわかる。</p>
<p><span id="more-1509"></span><br /><br />
AS3でhttp postする</p>
<p><a href="http://shokai.org/archive/as3/0803_HTTP/HttpPost.as">HttpPost.as</a><br /><br />
</p>
<blockquote><p>varparams:URLVariables=newURLVariables();<br /><br />
params.decode(&#8220;entry[name]=&#8221;+_textInputName.text);<br /><br />
params.decode(&#8220;entry[message]=&#8221;+_textAreaPost.text);</p>
<p>varrequest:URLRequest=newURLRequest(&#8220;http://localhost:3000/entries&#8221;);<br /><br />
request.method=URLRequestMethod.POST;<br /><br />
request.data=params;<br /><br />
varurlLoader:URLLoader=newURLLoader();<br /><br />
urlLoader.dataFormat=URLLoaderDataFormat.VARIABLES;</p>
<p>urlLoader.load(request);</p></p></blockquote>
<p>
<p>（Railsの複数形・単数形の変化は注意）<br /><br />
。</p>
<p>返り値を受け取るには、<br /><br />
関数を宣言して<br /><br />
</p>
<blockquote><p>publicfunctiononPostComplete(e:Event):void{<br /><br />
varparams:URLVariables=newURLVariables(e.target.data);<br /><br />
trace(&#8220;received:&#8221;+unescape(params.toString()));<br /><br />
}</p></p></blockquote>
<p>
<p>関数をURLLoaderのインスタンスに登録しておけばいい</p>
</p>
<blockquote><p><p>urlLoader.addEventListener(Event.COMPLETE,onPostComplete);//post完了イベントに関数登録</p></p></blockquote>
<p>
<p>今回帰ってきた値。HTMLだ。<br /><br />
</p>
<blockquote><p>postfromflash<br /><br />
received:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"<br /><br />
&#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;></p>
<p><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"lang="en"><br /><br />
<head><br /><br />
<metahttp-equiv="content-type"content="text/html;charset=UTF-8"/><br /><br />
<br /><br />
<linkhref="/stylesheets/scaffold.css?1206748225"media="screen"rel="stylesheet"type="text/css"/><br />
</head><br /><br />
<body></p>
<p><pstyle="color:green">Entrywassuccessfullycreated.</p></p>
<p><p><br />
<b>Name:</b><br /><br />
shokai<br /><br />
</p></p>
<p><p><br />
<b>Message:</b><br /><br />
postfromflash<br /><br />
</p></p>
<p><ahref="/entries/2/edit">Edit</a>|<br /><br />
<ahref="/entries">Back</a></p>
<p></body><br /><br />
</html><br />
</p></p></blockquote>
<p>
</p>
]]></content:encoded>
			<wfw:commentRss>http://shokai.org/blog/archives/1509/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

