OpenLaszlo Rails Pluginのappletスクリプトに手こずる
OpenLaszloとRuby on Railsの夢の協演をためしてみました。
「OpenLaszlo Rails PluginでOpenLaszloとRuby on Railsが夢の協演?」で、なんとかOpenLaszlo Rails Pluginをインストールでき、前座が終了、いよいよ本公演といきたいところなのですが。。。
以下で、実際に行った作業を紹介していきます。
(0)データベースの準備
Webアプリケーションで利用するデータベースを作成します。
今回は、以前に作ったtestデータベースを利用することにします。
データベース作成の詳しい手順は「pgAdminIIIでpostgreSQLを操作する」を参照してください。
(1)radRailsで「laszloRails」とプロジェクトを作成する
Files->New->Rails Projectを選択して、Ruby on Railsのプロジェクトを新規に作成します。
Poroject NameにlaszloRailsを設定して、Finishをクッリクしてください。
(2)データベース接続の設定を行う
database.ymlを選択して、データベース接続の設定をする。
adapter: postgresql
database: test
username: データベースを作成したときに指定したユーザ名
password: あらかじめ設定したパスワード
host: localhost
(3)OpenLaszlo Rails Pluginをインストールする
Rails Pluginsタブを選び、選んだタブの中の左側に表示されているリストのなかから
openlaszloを選択して「Go」をクッリクします。
(4)RESTコントローラを作成する[Controller]
openLaszloで作成したクライアントアプリケーションとデータベースとの通信はRESTを介して行うため、
RESTを利用するためのコントローラを生成します。
Generatorsタブで左のフォームに「rest_controller」
右のフォームに「Item」と入力して、「Go」をクッリクします。
ここで、REST Controllerの中身と動作を確認しておきましょう。
(中身の確認)
app->controller->item_controller.rbを表示します。
次のようなコードが表示されると思います。
OpenLaszloとRESTの文字が確認できます。
class ItemController < ApplicationController
# The following line defines methods that implement the OpenLaszlo
# REST API.
#
# To replace this file with a file that contains explicit method
# definitions, execute:
# script/generate rest_scaffold item
rest_scaffold :item
end
(動作の確認)
ServersタブでServerを起動します。
http://localhost:port/itemへアクセスすると、データベースに格納されている
データがXML形式で表示されます。
うまく表示できれば、RESTコントローラーが正常に動作しています。
(注)
portには、サーバを起動するときに設定したポート番号を指定してください。
(参考)
データベースのレコードに対してCRUD(Create, Read,Update and Delete)が
どのように実装されているかを確認するためには、
vender->plugins->openlaszlo->generators->rest_scaffold->templates->
rest_scaffold_generators.rbを参照してください。
(5)がうまくいっていません。情報をお持ちのかた、ご教授ほどよろしくお願いいたします。
(5)OpenLaszloのインターフェースを作成する[View]
appletスクリプトを実行します。
Generatorタブで左のフォームにapplet、右のフォームに(コントローラ名) (アプレット名)を入力して
「Go」をクッリクします。
(注)
(コントローラ名)と(アプレット名)の間にはスペースがひとつ入ります。
実行すると次の2つのファイルが生成されます(そのはずなんですが、うまくいっていません)。
app/applets/contacts/(コントローラ名).lzx
app/views/contacts/(アプレット).rhtml
(4)までで、すでにRESTでデータベースにアクセスできる仕組みが手に入りました。したがって、Railsから離れてOpenLaszloでViewを作りこんでしまっても問題ありません。というか、それが本道だと思います。
でも、どうせならappletも利用したいと思うのは、私だけでしょうか(笑)。