Ruby on Rails Light の開発環境

Ruby on Rails Light 専用の開発環境は、残念ながら、今のところありません。
ただ、Ruby on Rails Light で使われるクラス名、メソッド名、各種文法などは、Ruby on Rails に似せてあります。
そのため、Ruby on Rails Lightでのウェブアプリケーション開発の際には、Ruby on Rails の開発環境を流用することをお奨めします。

私の場合、RadRailsという Ruby on Rails 用の開発環境を使っています。

RadRails は、単にプログラムを書くエディタとしてだけでなく、テスト環境としても使っています。
Ruby on Rails Light のアプリケーションを作っていることはいったん忘れて、Ruby on Rails のアプリケーションとして、 一通り、テストまで実行してしまうのです。

RadRails を使って Ruby on Rails で動作するアプリケーションが作れたら、それを、Ruby on Rails Light 上で動くように「移植」する・・・ 少し面倒なように思われますが、これが最も効率的だと思います。

Ruby on Rails アプリケーションを「移植」する

1. モデル、ビュー、コントローラ、ヘルパーのコピー

Ruby on Rails アプリケーションを、Ruby on Rails Light に移植するには、まず、model、view、controller、helperをコピーします。
Ruby on Rails Light のソースプログラムを見てもらえば分かると思いますが、フォルダ構成は、Ruby on Railsのそれとほとんど一緒です。

適切なフォルダにコピーしてもらえばいいと思います。

2. 継承クラス名の書き換え

ファイルをコピーしたら、継承クラス名の書き換えが必要です。

Ruby on Rails の場合、例えば、コントローラは ActionController クラス、モデルは ActiveRecord クラスといったクラスを継承していますが、 Ruby on Rails Light は、これらのクラスを全て独自に開発しています。
(これが Ruby on Rails Light の「高速」「低負荷」動作の最大の理由だともいえます。)

そのため、全てのコントローラとモデルについて、次の通り、継承クラスの書き換えが必要です。

/controllers/application_controller.rb

class ApplicationController < ActionController::Base
 => class ApplicationController < ActionControllerLight
app/models/以下の全てのファイル

class モデル名 < ActiveRecord::Base
 => class モデル名 < ActiveRecordLight

3. データベースの作成

サーバ上にデータベースを作成します。データベースは、現在の所 MySQL にしか対応していません。

XREA.COM の場合、データベースは管理者ページから、PhpMyAdmin が使えますから、これを使って作成します。
テーブル名、フィールド名などの規則は、Ruby on Railsに準じます。

RadRails など、Ruby on Rails の開発環境を使って自分のパソコン上で開発をしてきた人は、既に、 自分のパソコン上にデータベースが作られているでしょうから、自分のパソコンのデータベースから設計をエクスポートし、 それをサーバ上のデータベースにインポートすればよいでしょう。

4. データベースの設定

サーバの管理画面などでデータベース(とテーブルやフィールド)を作成したら、Ruby on Rails Light にデータベースの設定をします。
設定の方法も、ほぼ、Ruby on Rails と同じです。

config/database.yml

adapter: mysql # 現在の所 mysql しか対応していません
database: yumejiroh_2 # データベースの名前 ( XREA.COM の場合は「ユーザー名_数字」)
host: localhost # データベースサーバのホスト名 ( XREA.COM の場合は「localhost」)
username: yumejiroh_2 # データベースのユーザー名 ( XREA.COM の場合はデータベース名と同じ)
password: glaYo34wiUfa
port: # XREA.COM の場合は空欄でOK
socket: # XREA.COM の場合は空欄でOK
# (各設定項目とも、「:」の後に半角スペースが必ず必要ですので、注意してください。)

5. デバッグ

さて、ここまで設定できたら、実際、様々なアドレスにアクセスしてみて、動作をテストしてみましょう。

しかし、最初はうまく動かないことが多いと思います。

というのも、Ruby on Rails Lightは、Ruby on Railsの全ての機能を実装しているわけではありませんし、実装していても、 仕様の異なるものもあります。

どうしても、いくつか、コントローラやビューなどの修正が必要になります。
修正については、Ruby on Rails Light APIリファレンス などを参照しながら進めていくといいと思います。

ただ、修正するにしても、どこでエラーが発生しているかが表示されないと、なかなか難しいと思います。

Ruby on Rails Lightは、エラーが発生すれば、その内容とバックトレースを表示させる仕様にしてありますが、残念ながら、完全ではありません。
(一部、表示が出ないエラーがあります。)

最後に、レンタルサーバ「XREA.COM」「CORESERVER.JP」に限った仕様なのですが、こういった場合に有効なデバッグの方法をご紹介しましょう。
public/.htaccess ファイルに、以下の1行を追加してください。

AddHandler cgi-script-debug .cgi

これで、ほぼ全てのエラーが表示されるようになります。