libro
www.tuyano.com
初心者のためのRuby on Rails3入門

Modelを作ろう! (7/7)

作成:2012-02-06 08:30
更新:2012-02-16 15:34

■eXo Cloud IDEでのModel利用について

最後に、eXo Cloud IDEでのModel作成について説明しておきましょう。eXo IDEでは、herokuコマンドやgitコマンドは使えるのですが、railsコマンドがまだ使えないのです。このため、rails generateコマンドも実行できません。ということは? そう、必要なファイルをすべて手作業で作るしかありません。

プロジェクトを作って、デプロイまで必要な作業を整理すると以下のようになります。

1. Controller
helos_controller.rbですね。これは「controllers」フォルダに手作業で作成します。

2. View
とりあえずindexアクションのViewは必要でしょう。「views」内に「helos」フォルダを作り、その中にindex.html.erbファイルを作成します。

3. Model
models」フォルダ内に、helo.rbファイルを作成します。

4. 「config」フォルダ
routes.rbの書き換えは必要です。これを行わないと指定のアドレスでページにアクセス出来ません。が、database.ymlproduction.rbなどの設定ファイルは書き換える必要はありません。

5. Gemfile
これも、eXo IDEでは修正する必要はありません。そもそもgemが実行できないので意味がありません。

6. 「db」フォルダ
これが最大の難問です。ここにはマイグレーションによってデータベース関連のファイルが自動生成されるわけですが、このマイグレーションは、eXo IDEでは使えません。……いえ、rake db:migrateを実行することはできるのですが、これは既にあるマイグレーションファイルを元にHerokuのデータベースを更新する作業のみで、Aptana Studioでやったように自動的にマイグレーションファイルを生成してくれるわけではないのです。このため、手作業でマイグレーションファイルを作成し、それを元にHerokuをマイグレーションする必要があります。

7. マイグレーション
マイグレーション機能は、<PaaS>メニューの<Heroku>にあるサブメニューから<Rake...>を選んで行います。これは、Rakeコマンドを実行するためのメニューです。これを選んで現れたダイアログで、「db:mgirate」と入力し、「Run」ボタンを押せば、マイグレーションを実行します。同様に、「db:seed」と入力すれば、seeds.rbをもとに初期データの作成が行われます。ただし、既に述べたようにマイグレーションファイルは自分で作って用意しないといけません。

いろいろマイグレーションファイルを作って試してみたのですが、どうも最初にテーブルを生成するところでうまくテーブル作成がされないケースに何度も遭遇しました。どうも状況などがはっきりしないので、うまくテーブルが作成されない場合には、「db」フォルダ内に「schema.rb」というファイルを作成し、
create_table  "helos", :force => true do |t|
    t.string    "title"
    t.string    "content"
end
このような内容を記述してからマイグレーションしてテーブルを作成してみてください。shema.rbは、データベースの構造をダンプすると生成されるファイルです。これを手作業で作りマイグレーションすることでeXo IDEからHerokuにテーブルを生成させることができました。ただし、eXo IDEも日々バージョンアップしているようですので、そのうち普通にマイグレーションしてデプロイすればOKになるかも知れません。

8. デプロイメント
デプロイは、<Git>メニューの<Remote>のサブメニューから<Push>を選んで行いましたが、ファイルの追加や修正を行ったときには、まず変更情報を「Add」し、それを「Commit」し、最後に「Push」する、という手間が必要になります。これは以下のようになります。

Add」――ファイルの追加や修正、削除を行なったら実行します。<Git>メニューの<Add...>を選んで行います。ダイアログが現れますが、ファイルを新たに作ったときはデフォルトのままAddしてください。ファイルは作らず、既にあるファイルの修正や削除の場合は、ダイアログの「Update」のチェックをONにしてAddしてください。

Commit」――修正情報をコミットします。これは<Git>メニューの<Commit...>を選んで行います。ダイアログが現れるので、「Enter log message……」という入力エリアにコメント文を書いてCommitします。新しいファイルを作成したときはそのままでOKです。既にあるファイルの修正や削除の場合は、「Add modified……」のチェックをONにしてCommitします。

Push」――これは、初めてデプロイした時と同様です。<Git>メニューの<Remote>のサブメニューから<Push>を選びます。


■サンプルプロジェクトを利用する!

要するに、すべてのファイルの作成と修正を全部自分の手で行う、ということですね。なおかつ、「Aptana Studioでは必要だったけど、eXo IDEでは変更しなくていいもの」などもあるため、間違えずに作業するのはなかなかに大変です。

そこで、提案です。プロジェクトを作成するとき、新規Railsプロジェクトではなく、Railsのサンプルプロジェクトを利用するのです。eXo IDEで新しくプロジェクトを作成するとき、<Project>メニューの<New>メニューから、<Create Project...>というサブメニューを選んで作成をしました。これだと、まったくの新プロジェクトが作られます。

サンプルプロジェクトを利用して作る場合は、<Project>メニューの<New>メニューから、<Import a Sample Project...>サブメニューを選びます。すると、画面に利用可能なサンプルプロジェクトの一覧が現れます。

ここから、「rails-demo」を選んでください。これがRailsアプリのサンプルプロジェクトです。そして、プロジェクト名を入力して次に進み、「Deploy to」のメニューから「Heroku」を選んでFinishします。これでサンプルプロジェクトをコピーして新しいプロジェクトが作成されます。

このサンプルプロジェクトには、デフォルトでホーム画面となるHomeControllerと、簡単な投稿をするPostsControllerが用意されています。このままデプロイし、データベースのマイグレーションを行えば、ちゃんとデータベースを使ったアプリが動きます。デフォルトでは、eXoのレイアウトが設定されていますので、既に説明したやり方でオリジナルのレイアウトに変更して使えばよいでしょう。

動作を確認したら、後は既にあるプロジェクトをもとに、自分なりにファイルを書き換えてアプリを作っていけばいいわけですね。基本的なファイルは既に揃っていますし、必要な設定も修正された状態ですから、イチから作るよりはるかに簡単です。個人的にはこの方法をオススメします。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※下図はサンプルプロジェクトをベースに作成したRailsアプリの画面。

※関連コンテンツ

「初心者のためのRuby on Rails3入門」に戻る