TOPシステム開発> OpenLaszloでのデータ利用(続き)
いまが旬!Ruby on Rails&OpenLaszlo
いまが旬!Ruby on Rails&OpenLaszlo

第1回:Ruby on RailsとOpenLaszloの連携

著者:ネットエイト  十河 学   2007/9/4
前のページ  1  2  3
OpenLaszloでのデータ利用(続き)

   グリッドで変更されたデータはデータセットにも反映されるため、<text>グリッドの1行目addressの値を変更することで、xpathを使いデータバインドしている<text>の内容も自動的に更新されます。LZXはXMLデータへノードを追加したり、XPathを使用したデータのフィルタリングなどのメソッドが数多く用意されており、クライアント側でのデータ操作に力を発揮します。

   それではRoRと連携するため、外部のデータを利用するにはどのようにすればよいでしょうか。まずコード2のサンプルを外部からデータを取得するように変更してみましょう。
コード3:simpledatabind_remotedata.lzx
<canvas>
 <dataset name="addressdata" src="http://127.0.0.1:3000/getaddressdata" request="true" />

 <grid datapath="addressdata:/addresses" height="100" />
 <text datapath="addressdata:/addresses/address[1]/@address" y="120" />
</canvas>
</code>

   いかがでしょう。コード3はdatasetにsrcを指定しただけです。

   RoR側ではgetaddressdataコントローラが呼ばれた時、コード2の<addresses>と同じ形式のxmlデータを組み立てて返すだけとなります。サーバ側でXMLを返す処理がまだ実装できていないという場合には下記のようにXMLデータファイルを指定することもできます。

<dataset name="addressdata" src="testdata.xml" />

   こうすることでローカルにあるxmlファイルを読み込むこともできるのでXMLデータの構造を決めておくだけで、サーバ側とクライアント側を完全に分離して開発を進めることができます。


RoRとLaszlo間のリクエスト/レスポンスの流れ

   図3にRoRとLaszlo間のリクエスト/レスポンスの流れを示しています。

RoRとLaszlo間のリクエスト/レスポンスの流れ
図3:RoRとLaszlo間のリクエスト/レスポンスの流れ
(画像をクリックすると別ウィンドウに拡大図を表示します)

   RoRはモデルを通じてデータベースから必要なデータを引き出します。このためにはLaszloアプリケーションのデータセットを利用し、RoRのコントローラを呼び出します。そしてビューでrxmlテンプレートを使って、レスポンスとしてXML形式のデータを返しています。


まとめ

   LaszloアプリケーションとRoRを使ったRIA開発の概要をご理解いただけましたでしょうか。次回からRoRとOpenLaszloを利用したアプリケーションを実際に作成していきながら、より深くRIAの開発を説明していきたいと思います。

   わかりにくい点やご意見、ご感想などがありましたら、お気軽にtogawamanabu@gmail.comまでメールをお送りください。

前のページ  1  2  3


株式会社ネットエイト 十河 学
著者プロフィール
株式会社ネットエイト  十河 学
2005年にOpenLaszloに出会う。RIAとオープンソースの可能性に感動し、OpenLaszloの情報交換を目的としたlaszlo.jpを勢いで開設。オープンソースアプリケーションはもちろん、iTunesやYouTubeから生まれるアーティストや、場所を問わないワークスタイルなどインターネットを中心として大きく変わりつつある世界の動きにも興味あり。現在はnet8のメンバーで沖縄県在住。

http://laszlo.jp


INDEX
第1回:Ruby on RailsとOpenLaszloの連携
  はじめに
  OpenLaszloとRoRの連携の方法
OpenLaszloでのデータ利用(続き)