Ruby on Railsを利用するためには、下記の手順にて実施します。
【実施手順の目次】
▼初回のみ(サーバー毎)
1.Ruby言語のインストール
2.gem(Rubyのパッケージ管理フレームワーク)のインストール
3.データベースサーバー(今回はmysql)のインストール
4.データベースへ接続するためのドライバーのインストール
5.Railsのインストール
▼アプリケーション毎
6.Railsアプリケーションの雛形を作成
7.Rubyの文字コードを設定
8.Railsの文字コードを変更
9.Mysqlへデータベースを作成
10.データベース設定ファイルを編集
▼テーブル毎
11.Railsからデータベースのテーブルを作成
12.テーブルの定義雛形を作成
13.定義雛形からテーブルを作成
14.アプリケーションのMVC雛形を作成
▼起動時
15.Railsアプリケーションを起動
16.ブラウザで利用できることを確認
※16ステップが多いと感じる方もいると思いますが、
実行するコマンドは、とても簡単なので慣れると思いますので、
実際に実行してみましょう。
【実施手順の詳細】
1~3のインストールは、sysinstallのportsシステムから一括で行います。
masudaq# sysinstall
portsから次のパッケージをインストールします。
ruby/ruby-1.8.2_4
ruby/ruby18-gems-0.8.11
databeses/mysql-server-4.1.13
databases/mysql-client-4.1.13
databases/mysql-scripts-4.1.13
インストールが完了したら一度再起動を実施する。
masudaq# shutdown -r now
gemで「4.データベースへ接続するためのドライバー」をインストールする。
masudaq# gem install mysql
Select which gem to install for your platform (i386-freebsd6)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. mysql 2.5.1 (ruby)
6. Cancel installation
masudaq# 3
同じくgemで「5.Railsをインストール」する。
masudaq# gem install rails --include-dependencies --version 1.1.2
※いくつかのバージョンを試しましたが、FreeBSD6.0では1.1.2が相性的に良いと思います。
次は本題の「6.Railsアプリケーションの雛形を作成」です。
今回は雛形を置く場所を「/root/rails_apps/」にアプリケーション名を「blog」配下に設定しました。
masudaq# cd /root/rails_apps
masudaq# rails blog
次に「7.Rubyの文字コードを設定」します。
masudaq# vi /root/rails_apps/blog/config/environment.rb
先頭行に下記を追加
$KCODE = 'u'
「8.Railsの文字コードを変更」をします。
masudaq# vi /root/rails_apps/blog/app/controllers/application.rb
下記の赤文字を追加
class ApplicationController < ActionController::Base
before_filter :set_charset
protected
def set_charset
@headers["Content-Type"] = "text/html; charser=utf8"
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end
end
「9.Mysqlへデータベースを作成」
mysql>create database blog_development default character set utf8;
mysql>create database blog_test default character set utf8;
mysql>create database blog_production default character set utf8;
「10.データベース設定ファイルを編集」
masudaq# vi /root/rails_apps/blog/config/database.yml
development:
adapter: mysql
database: blog_development
host: localhost
username: root
password: *******
encoding: utf8
# Warning: The database defined as 'test' will be erased and
# re-generated from your development database when you run 'rake'.
# Do not set this db to the same as development or production.
test:
adapter: mysql
database: blog_test
host: localhost
username: root
password: *******
encoding: utf8
production:
adapter: mysql
database: blog_production
host: localhost
username: root
password: ******
encoding: utf8
「11.Railsからデータベースのテーブルを作成」
Railsでは、テーブル作成をバージョン管理する「migration」という機能があります。
今回は、その「migration」を使用してテーブルを作成します。
作成する前にRailsでテーブルを作成する際のお約束があります。
1.テーブル名は複数形にする。
例:
contents
documents
users
personの複数形はpeople
では、contents「12.テーブルの定義雛形を作成」します。
masudaq# ruby /root/rails_apps/blog/script/generate migration create_contents
exists db/migrate
create db/migrate/001_create_contents.rb
作成された「001_create_contents.rb」ファイルを編集します。
masudaq# vi /root/rails_apps/blog/db/migrate/001_create_contents.rb
class CreateContents < ActiveRecord::Migration
def self.up
create_table(:contents, :options => "ENGINE=MyISAM DEFAULT CHARACTER SET=UTF8") do |t|
t.column :title, :string
t.column :content, :text
t.column :view_fg, :boolean, :default=>false
t.column :status, :string, :default=>'show'
t.column :created_at, :datetime
t.column :updated_at, :datetime
end
#インデックスを作成
add_index :contents, :status
end
def self.down
#バージョンを下げるときにテーブルを削除
drop_table :contents
end
end
contentsの「13.定義雛形からテーブルを作成」
masudaq# rake db:migrate
※バージョンを戻す場合
masudaq# rake db:migrate VERSION=0
「14.アプリケーションのMVC雛形を作成」
テーブル名は、単数形で始めの文字を大文字にする。
masudaq# ruby script/generate scaffold Content
「15.Railsアプリケーションを起動」
※Railsには、テスト用でWeblikというWEBサーバーが同封されており、そのWEBサーバー(設定不要)を起動するとRailsアプリケーションが利用できるようになります。
masudaq# ruby /root/rails_apps/blog/script/server
「16.ブラウザで利用できることを確認」
※デフォルトで3000ポートが開発環境のWEBサーバです。
http://localhost:3000/
以上で、終わりです。