はじめてのRails
RubyもRailsもというか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]から確認できます。
すばらしいお手軽さですね。
ということで、今日はここまで。
長かった。。。