NetBeansで始めるFour Days on Rails
☆☆ アップデートしました。こちらhttp://www.servletgarden.com/blog/2007/08/20/four-days-on-rails-by-netbeans-day-1/をご覧ください。☆☆
"Four Days on Rails"(http://rails.homelinux.org/)のDay 1で紹介されているRuby on RailsアプリケーションをNetBeans 6.0M9とJRuby1.0で試してみました。DBはNetBeans付属のJava DB(Apache Derby)です。
- 環境を整える
- JDK 1.6.0以降(Ubuntu(たぶん、ほかのLinuxも)はJDK 1.6.0_01ではなく、1.6.0じゃないとダメでした。ポップアップするはずのNetBeansのウィンドウが開かなかったので)をインストールする
- JRuby 1.0(http://jruby.codehaus.org/)のアーカイブをダウンロードして展開する
- jdk1.6.0/db/lib/derbyclient.jarをjruby-1.0/libにコピーするか、jruby-1.0/libディレクトリからderbyclient.jarにsymbolic linkを張る
- NetBeans 6.0M9(http://bits.netbeans.org/download/6.0/milestones/latest/)のFullバージョンをインストールする
- NetBeansで使うJRubyをアップデートする(NetBeansに付いてくるのはJRuby 0.9.8)
- ToDoプロジェクトを作る
- File -> New Project -> Ruby -> Ruby on Rails Application -> Project NameにToDOと入力 -> Next -> Install Rails(はじめてRails Applicationのプロジェクトを作るときだけ。以降はUpdate Railsボタンに変わる) -> Finish
- データベース接続の設定を行う
※RailsアプリケーションからJava DBに接続する方法はhttp://www.netbeans.org/kb/60/rapid-ruby-weblog.htmlにあるとおりです。
-
- ToDoプロジェクトのConfiguration以下にあるdatabse.ymlを編集して、development:の部分を次のように変更する
development: adapter: jdbc driver: org.apache.derby.jdbc.ClientDriver url: jdbc:derby://localhost:1527/todos username: foo password: bar
-
- 同じくConfiguration以下にあるenvironment.rbを編集する。Rails::Initializer.run do |config|の行の上に次のようにアダプタの設定を追加する
if RUBY_PLATFORM =~ /java/ require 'rubygems' RAILS_CONNECTION_ADAPTERS = %w(jdbc) end
Database Name: todos User Name: foo Password: bar
- データベースを接続する
- Runtimeウィンドウへ移動 -> todosデータベース上で右クリック -> Connect...を選択(アイコンが接続状態に変わる)
- Category Modelを作る
- Projectウィンドウへ移動 -> ToDoプロジェクトのModelsで右クリック -> Generate...を選択 -> ArgumentにCategoryと入力 -> OK
- 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を再起動するか、http://www.netbeans.org/kb/60/rapid-ruby-weblog.htmlのヒントを参考にしてください)
- Script Contollerを作る
- Projectウィンドウへ移動 -> ToDoプロジェクトのControllersで右クリック -> Generate...を選択 -> NameにScriptを入力、Viewは空欄 -> OK
-
- 自動生成されたscript_controller.rbを編集する
class ScriptController < ApplicationController scaffold :category end
-
- ToDoプロジェクトのConfiguration以下にあるroute.rbに次の一行を追加する。場所は最終行endの直前
map.connect '', :controller => "script"
- アプリケーションを実行する
- ToDopプロジェクトのPublic以下にあるindex.htmlを削除
- ToDoプロジェクトで右クリック -> Run Projectを選択、あるいは、Run Main Projectボタンをクリック(ToDoプロジェクトが太字で表示されていればToDoはMainプロジェクト)
- ブラウザ上に次のように表示される
-
- New CategoryのリンクをクリックしてCategoryにHome & Familyと入力してCreateボタンをクリックする
-
- 入力したCategoryが表示される
以上で、ほぼDay 1が終了です。DBのテーブルを作るところで手間取りましたが、NetBeansのRuby Packをつかうと、他はかなり簡単にできあがりました。
Ruby x Agile: Matz explores the relationships between Ruby and Agile
Matz氏ばかりではなく、平鍋さんや角谷さんのお名前も前面に出ています。すばらしい!ビデオはみなさん、ホワイトボードの方ばかり眺めていて顔がよく見えないかも、、、