This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/154
たいしたものじゃないですが、dJavaScrip
tの実装をRailsプラグインとして作ってみました。
http://svn.labs.drecom.jp/rails/plugins/trunk/djavascript
サーバ側でやることは、プラグインをインストールし、
json.js,
djavascript.jsをjavascript
_include_t
agして、コントローラの中で
djavascrip
t :object_na
me
のように公開するオブジェクトを登録します。
実際には、session[:object_na
me]が公開されます。
あとは、クライアントサイドから以下のような感じで使います。
var obj = new DJSObject('
http://foo.bar.com/controller_name/djavascript');
alert(obj.method
s());
new DJSObject( ... ) の呼び出しでリモートオブジェクトのpublicメソッド一覧を取得して、プロクシメソッドをobjに定義します。
obj.method
s() で、リモートオブジェクトの 'methods'メソッドを呼び出し、戻り値をto_jsonして返します。
通信にXHRを使っているので、同一ドメイン内でしか使えません。
scriptタグをappendChli
dする方式にすればドメイン境界を越えられますが、戻り値をreturnできないのがかっこ悪かったので、XHRにしてます。
もうちょっとちゃんと作れば、RESTとかXML-RPCに代わるAPIの一種として使えないこともないかも。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/154