はじめてのRails

RubyRailsもというかWebアプリケーションもまったくの初心者なのですが勉強してみました。
MySQLのインストールに失敗して挫折しかけましたが、なんとかRailsのさわりまでやったので、とりあえず作業の流れの備忘録をつけときます。


まず、Railsのインストールは、

> gem install rails --include-dependencies

でできます。(Rubyをインストールしておくことが必要)


Railsを最新の状態に保つには、

>gem update rails

です。簡単ですね。


その後、MySQLをインストール。

mysql-essential-5.0.22-win32.msiをダウンロードしてインストールを行います。
My SQL Administrator というツールでユーザを作成したり、テーブルを簡単に作成できるようですが、ここではインストールせずにコマンドでテーブルを作ってみます。
ちなみに、MySQL Administratorの情報は、http://masuidrive.jp/rails/rails_app.html から知りました。
インストールするとMySQLのサービスの起動になぜか失敗したのですが、アンインストールしてディレクトリを消して再インストールすればうまくいきました。


ここからが、実際にRailsでアプリケーションを作成していく手順です。

>mysql -u root -p
mysql> create database hoge_development default character set utf8;
mysql> create database hoge_test default character set utf8;
mysql> create database hoge_production default character set utf8;

で、データベースを作成。
MySQLで日本語を扱うため、文字コードUTF-8にしておきます。

ちなみに、デフォルトの文字コードは、my.iniのdefault-character-setで指定できるようですが、今回はコマンドを使ってみました。


次にデータベース上のユーザを作成します。

mysql> grant usage on *.* to ユーザ名@localhost identified by 'パスワード';

そして、作ったユーザがデータベースにアクセスできるように

mysql> grant all on hoge_development.* to 'ユーザ名'@'localhost';
mysql> grant all on hoge_test.* to 'ユーザ@'localhost';
mysql> grant all on hoge_production.* to 'ユーザ@'localhost';

を実行します。


Railsプロジェクトの作成は、

>rails hoge(プロジェクト名)

です。これで色々なファイルが作成されます。


その後、config\database.ymlを開きusernameに上で作成したユーザを設定し、encoding を付けたして utf8 に設定しておきます。

抜粋:

development:
  adapter: mysql
  database: hoge_development
  username: ユーザ名
  password: パスワード
  host: localhost
  encoding: utf8

また、Ruby文字コードも utf8 にするため、config\environment.rb の先頭に

 $KCODE = 'u'

を追加します。


次にデータベースを作成するスクリプトを生成するために、

>ruby script/generate migration create_hoges

を実行します。

このコマンドで生成された 001_create_hoges.rb にテーブルを作成するコードを追加します。

class CreateHoges < ActiveRecord::Migration
  def self.up
    create_table(:hoges) do |table|
        table.column(:datetime, :timestamp)
        table.column(:title, :string)
        table.column(:content, :text)
    end
  end

  def self.down
    drop_table(:hoges)
  end
end

self.upは、migrationのバージョンがあがるときに実行され、self.downはmigrationのバージョンが下がるときに実行されるそうです。(まだ、あんまりピンときていません・・・)


これを

>rake db:migrate

とすればテーブルが作成できます。


次に、

>ruby script/generate saffold Hoge

でデータベーススキーマからWebアプリケーションの雛形を作成できます。


なお、

>rake

で作成したWebアプリケーションのテストも実行できます。


作成したWebアプリケーションは、

>ruby script/server

でWebサーバを起動し、[http://127.0.0.1:3000/hoges/list]から確認できます。


すばらしいお手軽さですね。
ということで、今日はここまで。
長かった。。。