お手軽にWindowsで開発するための環境セットアップ例を以下に紹介する。

{{toc_here}}

!!基本環境
!!!1. Ruby + RubyGem

[[One-Click Ruby Installer for Windows|http://rubyinstaller.rubyforge.org/wiki/wiki.pl]] の download から、1.8.X(最新版を推奨)のexeをダウンロードする。

実行するとインストーラが起動するので全部デフォルトでインストール。

これで Ruby と RubyGem が使えるようになる。ruby\bin のPath も自動的に環境変数に追加される。

この環境が整っているかどうかは以下で確認できる。

* PATHにC:\ruby\bin が含まれるのを確認
* コマンドラインから(カレントディレクトリはどこでもよい)ruby -v でバージョンが表示されることを確認
*  コマンドラインから(カレントディレクトリはどこでもよい)gem --version でバージョンが表示されることを確認

!!!2. 最新の Rails

インターネットにつながったマシンのコマンドラインから以下を実行してしばし待つ。

 > gem install rails --include-dependencies

--include-dependencies をつけなくても機能的には問題がないがいちいち必要ライブラリを入れるか尋ねられて鬱陶しいのでつけることをお薦めする。

local gem file notfound の表示は初めてrailsを入れる際には出るので気にしなくて良い。

gem 経由でネットワークを使うコマンドについては、ネットワーク環境によっては正しく動作しないことがある。{{fn('例えば東横インなど。')}} ネットワーク接続の制限のきつい場所でうまくいかないときはこの原因を疑うとよいかもしれない。

!!IDE(統合開発環境)
!!!3. JDK1.4.2以上

RadRails は Eclipse ベースのIDEなので、動作させるために JRE1.4.2以上が必要となる(RadRailsのバージョンによるので先にRadRailsの環境要件を確認すると良い。本記事執筆時点ではRadRailsは0.7.1)。

何を選べばいいか判断がつかないときは [[http://java.sun.com/j2se/1.5.0/ja/download.html]] から JDK 5.0 (NetBeansなし)がお薦め。

!!!4. [[RadRails|http://www.radrails.org/]]

[[RadRails|http://www.radrails.org/]]のダウンロードページからWindows用の最新版のzipファイルをダウンロード。

解凍して radrails.exe を実行すればそのまま動作するので、マシン上のインストールしたい位置に展開するか、展開してから移動して使うと良い。例えば C:\radrails 以下など。

起動するとワークスペースを決める必要がある。特にどこが良いというのがなければ、C:\projects を作りそこに設定するのをお薦めしておく。

!!データベース

4までで、DBにつながらない Rails アプリケーションのための環境は十分だが、DBを使うためにはもうひと頑張りする必要がある。DBについては、使いたいDBによって環境設定が違ってくる。複数の環境設定をしておいて設定ファイルで簡単に切り分けることもできる。

ここでは、まず最もRails関連の情報でポピュラーなMySQL の場合の手順を説明する。{{fn('私はより手軽なSQLite3でRailsを始めたので、SQLite3の場合の手順も後で追加予定。MySQLとSQLite3を両方入れる必要は特にない。')}}

!!!5. MySQL

!!!!入手・インストール・設定
[[http://dev.mysql.com/downloads/]]から MySQL 5.x のWindows (Essentials でも Without Installer でもないもの)をダウンロード(本記事は5.0でテストしている)。{{fn('Pick a mirror から辿ると名前などを入れるフォームが出るが入れなくても下のほうからミラーを選んでダウンロードできる')}} zipファイルを入手できる。解凍してSetUp.exeをクリックしてインストールする。すると、インストール→設定と進めることができる。いろいろ細かい設定が必要なので以下に書き出す。

* インストールは、デフォルトの typcal で進めてインストールする。MySQL.com Sign-Upは Skip しても問題ない。
* 続いてConfigurationを行うかのダイアログが出、finishボタンを押すと設定に進む。この設定は後でやりなおすことができる。
** 設定は、デフォルトのまま進めて(細かい設定するほうで進めて)、以下の点を(デフォルトではなく)指定する。
*** Character Set の設定ページにて、3番目の "Manual Selected Default Character Set / Collation を選択し、Character Set: の欄を utf8 に設定する。Charctor Set: という欄が画面下部にあるページが目印。
*** その次のページでは、Include Bin Directory in Windows PATH のチェックをクリックする。(Install As Windows Serviceはチェックしたままとする)
*** その次のページで、rootパスワードを設定する。
*** 次の画面で Execute ボタンを押し、終わったら finish を押す。

!!!!最低限必要な知識

詳細は[[MySQL公式ページのマニュアル|http://dev.mysql.com/doc/]]などを参照するとよい。以下に、Rails で使うために最低限知る必要のある内容を記述していく。なお、Rake に対してDB非依存なスクリプトを実行させる方法もあり、開発環境構築手順を共通化するには便利だろう。また、MySQL の GUI Tool からでも同じことができる。ここでは、以下の理由から Client Tool による方法を紹介する。
* インストールが最低限
* MySQLになじみのない人はいずれにせよここに述べたようなことは知る必要があると思う
* Rake 用のプログラミングは以下で述べるコマンドの実行に比べると面倒なので、短い時間でまず本題を学習したい人には回り道になる

!!!!!MySQLの起動とClient Tool
MySQLの起動と停止は Windows のコントロールパネル → 管理ツール → サービスで行う。

Rails から利用するには、root以外の接続ユーザー{{fn('rootで済ませることもできるが、本格的に開発するなら別に用意したほうがよい。')}}と、Railsアプリケーションが使うDBが必要になるので、MySQLを起動した状態で,MySQL Command Line Client (インストール後、Windows メニューから起動できる。パスワードは rootパスワードとして設定したものを入れる。)から以下の手順で準備する。

!!!!!データベースの作成

new_database のところを任意のデータベース名に変えて以下を実行するとデータベースを作成できる。

 mysql> create database new_database;

!!!!!ユーザーの作成

new_database を作ったデータベース名、new_user を任意のユーザー名、new_password をそのユーザーが接続するためのパスワード文字列に変えて以下を実行するとユーザーを作成し、先に作ったデータベースへのすべての権限を許可し、データベースにその設定をすぐ反映することができる。

 mysql> grant all on newdatabase.* to new_user@'%' identified by 'new_password';
 
 mysql> flush privileges;

!!!!!クライアントツールを使ってSQLを実行するには

root権限で入り、操作対象のDBを指定すればDBに対してSQLが実行できる。

 mysql> use new_database;

!!Railsアプリケーションの作成と基本設定

!!!6.RadRails 上における Railsアプリケーションの作成

!!!!アプリケーションとプロジェクトの構築
RadRails の File -> New.. で出てくるダイアログにて、Rails/Rails Project という wizard を選んで Nextを押す。Project名を打ち込んで Finish でアプリケーションとRadRailsプロジェクト環境、RadRails上で WebRickなどのサーバを動かすための設定が自動で作られる。

!!!!text file encodingの設定
なお、Windows では、各ファイルのEncodingがデフォルトでは Shift_JISになっている。後述するように日本語アプリケーションは UTF-8 で作ることが望ましいため、RadRails で、デフォルトのテキストファイルエンコーディングを変えたほうがよい。

それには、プロジェクトルートアイコンを選択して右クリックし、ポップアップメニューから properties... を選択。ダイアログ中央にある Text file encoding を Other: UTF-8 に設定する。こうすることで、すべてのテキストファイル(新ファイルを含む)を RadRails 上で自動的に UTF-8 で開いてくれる。

!!!7.Railsアプリケーションにおけるデータベース設定

Rails では 開発用、テスト用、本番用の3種類のデータベースを用意することになっているので、まず、3種類のDBをMySQLに{{fn('ほかのDBを使うかたはそのDBにおいて同様に用意する')}}用意する。命名例は、appname_dev, appname_test, appname_pd など。また、それらに接続するDBユーザーを決める。root でない、プロジェクト専用のユーザーを1つ用意して3つのDBへの接続はそのユーザーに絞るのが良いと思う。

次に、config/database.yml に、DB名やDBユーザーの情報を記述する。

例えば、上記のDB名に対して、appname というユーザー(appname_pwというパスワード)が接続するのであれば、development のところは以下のようになる。同様に test, production もデータベース名をそれぞれ変えて設定する。

 development:
   adapter: mysql
   database: appname_dev
   username: appname
   password: appname_pw
   host: localhost
   encoding: utf8

接続に関して正しく設定できたかどうかは、例えば、プロジェクトルートディレクトリからコマンドラインで

 >rake db_schema_dump

と実行し、エラーなくdb/schema.rb ファイルが作られることで確認できる。

!!!8.Railsアプリケーションで日本語を正しく扱うための設定

config/environment.rb の先頭に以下を指定する。

 $KCODE = 'u'

app/controllers/application.rb に以下のように記述する。

 class ApplicationController < ActionController::Base
 
   before_filter :set_charset
   
   protected
   def set_charset
     @headers["Content-Type"] = 'text/html; charset=utf-8'
   end
 
 end