Easy Tutorial

ここでは細かい理屈は抜きにして、LuRuJu On Railsを利用して簡単なWebアプリを作成するまでの作業の流れを体感して頂く。

前提条件

以下がインストールされていることが前提とする。

  • JRuby (gemも含む)
  • Ruby (gemも含む)
  • Ruby on Rails
  • LuRuJu
  • MySQL

インストール方法は Install LuRuJuWith CRuby を参照のこと。

Railsプロジェクトの作成

Railsプロジェクトを作成する。プロジェクト名はsampleとする。

>rails sample
      create
      create  app/controllers
      create  app/helpers
      create  app/models
:
:

LuRuJu On Railsのインストール

LuRuJu On Railsをインストールする

>cd sample
>ruby script/plugin install \
 http://luruju.com/svn/plugins/luruju-on-rails
+ ./luruju-on-rails/README
+ ./luruju-on-rails/Rakefile
+ ./luruju-on-rails/init.rb
:
:

JUDEファイルの配置

JUDEのクラス図を作成し、RAILS_ROOT/app/models配下に置く。

クラス図の内容は以下のとおり。

サンプルのJUDEファイル(JUDE Professional)は以下よりダウンロードできる。

テーブル群の作成

JUDEのクラス図に対応した各テーブル群を作成する。

RAILS_ROOT/config/database.ymlを編集する。本例では開発環境(development)にデプロイするものとする。

development:
  adapter: mysql
  database: sample_development
  username: root
  password: XXXXX
  host: localhost

データベースsample_developmentを作成する。

>mysql -uroot -pXXXXX
mysql> create database sample_development;
Query OK, 1 row affected (0.02 sec)

mysql> exit
Bye

RAILS_ROOT/Rakefileに以下の内容を追記する。

:
:
require(File.join(File.dirname(__FILE__),'config','environment'))
require 'tasks/luruju'
require 'tasks/luruju_on_rails'

LuRuJuサーバを起動する。

>jruby -S rake luruju:server:start
(in C:/tmp/sample)
start LuRuJu Server URL=druby://127.0.0.1:3937

lor:db:createタスクを実行してテーブルを作成する。

>rake lor:db:create

以上でテーブル作成は完了である。以下、確認方法の一例を示す。

>mysql -uroot -pXXXXX sample_development
mysql> show tables;
+------------------------------+
| Tables_in_sample_development |
+------------------------------+
| customers                    |
| deliveries                   |
| delivery_centers             |
| delivery_centers_items       |
| items                        |
| ordered_items                |
| orders                       |
+------------------------------+
7 rows in set (0.00 sec)

scaffoldを利用したWebアプリの作成

上記作業で、JUDEファイルで定義したクラスがRoRのモデルとして動作する。 その確認をするために、scaffoldを利用した簡単なWebアプリを作成してみる。

以下、各モデルに対してscaffoldを実行する。

>ruby script/generate scaffold Customer
>ruby script/generate scaffold Delivery
>ruby script/generate DeliveryCenter
>ruby script/generate DeliveryCentersItem
>ruby script/generate Item
>ruby script/generate OrderedItem
>ruby script/generate Order

Railsサーバを起動する。

>ruby script/server

とりあえずこれでサンプルWebアプリは完了である。

以下、http://localhost:3000/customersをアクセスして登録処理を行った結果の一覧を示す。

モデルにビジネスロジックを追記

プラグインが動的に生成したモデルに対し、Rubyコードでビジネスロジックを追記できる。

RAILS_ROOT/app/models配下にcustomer.rbファイルを作成する。

customer.rbファイルに以下のようなビジネスロジックを追記する。

以上、ビジネスロジック追記の一例である。script/consoleでの簡単な動作確認を示す。

>ruby script/console
Loading development environment.
>> puts Customer.find(1).profile
name=ばんちょー
address=川崎市
phone_number=123456789
=> nil