Servlet Garden

Java, Web Application and beyond

Flower

Four Days on Rails by NetBeans – Day 1

話題のRuby on Railsがどういうものなのかを試してみたくて、手始めにFour Days on Rails(http://rails.homelinux.org/)をNetBeansのRuby Packを使って試してみました。

  • -環境
    • JDK 1.6.0_02 (Linux self-extractinf file (build 05)
      • Linux版1.6.0_01を使うと一部、ポップアップするはずのウィンドウが開きませんのでこのバージョンは使用できません。
  • -Java DB(Apache Derby)を使うための準備
    • なぜか上記のJDKにはJava DB関連のファイルが一切含まれていません。RPM版には含まれているので何かの手違いかと思われますが、、、db/lib/derbyclient.jarが必要なので、他のJDKのバージョンかApache Derby(http://db.apache.org/derby/)をダウンロードしてderbyclient.jarを入手してください。
    • NetBeansをインストールしたディレクトリ以下にある netbeans-6.0m10/ruby1/jruby-1.0/libにderbyclient.jarへのリンクを作るか、Jarアーカイブをコピーします。

以上でRuby on Railsの環境はすべて整いました。Rubyの実行環境はNetBeansに付属しているJRubyを使いますし、DBもNetBeansに付属しているJava DB(a.k.a. Apache Derby)を使いますので、これ以上何もインストールする必要ありません。

Day1の ”To Do List”アプリケーションにトライしてみます。

  1. To Doプロジェクトを作る
    • File -> New Project -> Ruby -> Ruby on Rails Application -> Next -> Project NameにToDoと入力 -> Finish
    • Ruby on Rails ToDo Project on NetBeans
  2. データベース接続の設定を行う
    • ToDoプロジェクトのConfiguration以下にあるdatabse.ymlを開いて、development:の部分を次のように変更する。
    • development:
        adapter: jdbc
        driver: org.apache.derby.jdbc.ClientDriver
        url: jdbc:derby://localhost:1527/todos
        username: foo
        password: bar
    • Ruby on Rails editing database.yml on NetBeans
    • Configuration以下にあるenvironment.rbにアダプタの設定を追加する。Rails::Initializer.run do |config|の行の上を次の4行を追加する。
    • if RUBY_PLATFORM =~ /java/
        require 'rubygems'
        RAILS_CONNECTION_ADAPTERS = %w(jdbc)
      end
    • Ruby on Rails editing environment.rb on NetBeans
  3. Java DBにtodosデータベースを作る
    • Tools -> Java DB Database -> Create Database… -> 以下のように入力 -> OK
    • Database Name: todos
      User Name: foo
      Password: bar
    • Ruby on Rails creating todos database on NetBeans
  4. todosデータベースを接続する
    • Servicesウィンドウへ移動 -> todosデータベース上で右クリック -> Connect…を選択(アイコンが接続状態に変わる)
    • Ruby on Rails connecting todos database on NetBeans
  5. Category Modelを作る
    • Projectsウィンドウへ移動 -> ToDoプロジェクトで右クリック -> Generate…を選択 -> Generate: modelを選択 -> ArgumentsにCategoryと入力 -> OK
    • Ruby on Rails Gemerating Category Model on NetBeans
  6. categoriesテーブルをtodosデータベースに作る
    • モデルを作ったときに自動生成された001_create_categories.rbを次のように編集する。
    • class CreateCategories < ActiveRecord::Migration
        def self.up
          create_table :categories do |t|
            t.column :category, :string, :limit => 20, :default => '', :null => false
            t.column :created_on, :timestamp, :null => false
            t.column :updated_on, :timestamp, :null => false
          end
          add_index :categories, :category, :unique => true, :name => 'category_key'
        end
      
        def self.down
          drop_table :categories
        end
      end
    • Projectsウィンドウへ移動 -> ToDoプロジェクトで右クリック -> Migrate Databaseを選択 -> To Current Versionを選択(成功するとテーブルができあがる。うまく作れない場合はNetBeansを再起動するか、 NetBeans Ruby 6.0 Preview Documentation – Tutorials – Creating a Ruby Weblog in 10 Minutes のヒントを参考にしてください)
    • Ruby on Rails Migrating Categories table on NetBeans
  7. Script Contollerを作る
    • Projectsウィンドウへ移動 -> ToDoプロジェクトで右クリック -> Generate…を選択 -> Generate: controllerを選択 -> NameにCategoryを入力、Viewは空欄 -> OK
    • Ruby on Rails Generating Category Controller on NetBeans
    • 自動生成されたcategory_controller.rbを編集する。
    • class CategoryController < ApplicationController
        scaffold :category
      end
    • Ruby on Rails Editing category_controller.rb on NetBeans
  8. アプリケーションを実行する
    • ToDoプロジェクトで右クリック -> Run Projectを選択、あるいは、Run Main Projectボタンをクリック(ToDoプロジェクトが太字で表示されていればToDoはMainプロジェクト)
    • ブラウザにディフォルトページが表示される。
    • Ruby on Rails WEBrick top page triggered by NetBeans
    • http://localhost:3000/categoryを開くと初期状態のページが表示される。
    • Ruby on Rails First View of Categories developed on NetBeans
    • New CategoryのリンクをクリックしてCategoryにHome & Familyを入力してCreateボタンをクリックすると、入力したCategoryが表示される。
    • Ruby on Rails Running Application on NetBeansRuby on Rails Running Application on NetBeans
    • 同様にしてBusiness Categoryも作る。
    • Ruby on Rails Running Application on NetBeansRuby on Rails Running Application on NetBeans

以上で、”To Do List”アプリケーションの作成が終了し、動作も確認できました。ここで、Modelに修正を加えてみます。

  1. Data Validationルールを追加する。
    • Projectsウィンドウを開き、ToDoプロジェクト、Models以下にあるcategory.rbを開いて次のように修正する。
    • class Category < ActiveRecord::Base
        validates_length_of :category, :within => 1..20
        validates_uniqueness_of :category, :message => "already exists"
      end
    • Category欄を1文字以上20文字以下に制限したので、Cateogry欄に”Learning Ruby on Rails”(20文字以上)を入力すると、次のようにエラーが表示されます。
    • Ruby on Rails Data Length Validating on NetBeans
    • また、Categoryの重複登録をしないように設定したので、Cateogry欄に”Business”を入力すると、次のようにエラーが表示されます。
    • Ruby on Rails Data Uniqueness Validating on NetBeans

以上でDay1は終了です。

Leave a Reply