Home » Programing, Ruby » Ruby on Railsでフォームを作成する#1(事前準備編)

Check     このエントリーをはてなブックマークに追加

前回さくらインターネットにて、Railsを動かす環境をつくったところで、今回はサンプルを作成してみようと思う。ちなみにrubyの言語的な知識も全くない状態なので、手探りしつつ作ってます。

仕様は、簡単なお問い合わせメールフォームにします。
こんな感じで。
フォーム画面 → 確認画面 → 完了画面
        ↑         ↑
(フォームチェック)  (DB格納&メール送信)

まずは、railsのプロジェクトを作成してみる。

mkdir rails_project
cd rails_project
rails sample

すると、sampleというディレクトリの中にrailsの雛形が作成される。

今回は、DB(mysql)、HTMLともにUTF-8で統一しようと思っているので、そのための環境設定をします。

# railsのプロジェクトに入る
cd sample

# environment.rbを編集する
vi config/environment.rb
# UTF-8で表示
$KCODE = ‘u’
# rubyのパスを通しておく
$LOAD_PATH.push(“/home/[account]/local/ruby/lib/ruby/site_ruby/1.8″)
$LOAD_PATH.push(“/home/[account]/local/ruby/lib/ruby”)

データベースの接続情報を記述する
vi config/database.yml

development:
adapter: mysql
database: [account]
username: [account]
password: [password]
host: [host]
test:
adapter: mysql
database: [account]
username: [account]
password: [password]
host: [host]
production:
adapter: mysql
database: [account]
username: [account]
password: [password]
host: [host]

見たとおりですが、3つの環境を定義できます。

次にさくらで動かすために.htaccessファイルの書き換えをします。

vi public/.htaccess
# 下記3行をコメントアウト。さくらではfastcgiやOptionsタグは利用できないっぽい
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI

# RewriteRuleの上にRewriteBaseを足しておく。
# こうしないと独自ドメインでエイリアスを利用する場合は動作しなかった。
RewriteBase /sample
RewriteRule ^$ index.html [QSA]
~
# そして、さくらで動かすためにDocumentRootからシンボリックリンクを貼りましょう。
ln -s /home/[account]/rails_project/sample/public /home/[account]/www/sample
# このようにするとhttp://domain/sampleでRails環境が動くことになるでしょう。

それでは、本編です。
まずは、フォームで書かれた内容を書き込むテーブルを作成する。名前とメールアドレス、内容を保持するために下記のようにした。テーブル名は、複数形”s”を入れる。ちなみにプライマリーキーはidと言う名前でauto_incrementがいいみたい。

CREATE TABLE `contacts` (
`id` int(10) unsigned NOT NULL auto_increment,
`personal` varchar(255) NOT NULL default ”,
`email` varchar(255) NOT NULL default ”,
`message` text NOT NULL,
`entry` datetime NOT NULL default ’0000-00-00 00:00:00′,
`updated` timestamp(14) NOT NULL,
PRIMARY KEY (`id`)
);

genneratorでcontrollerとmodelを生成します。

ruby script/generate controller contact
ruby script/generate model Contact

こうすると、また必要なファイルが勝手に作成される!ちなみにmodelは先頭大文字でテーブル名から複数形のsを取り除いた。これが規約ってやつですね。

検証用のサーバー(Webrick)を動かしましょう。
これをすると、http://domain:3000/で今回のサンプルが動作しますよ。

ruby script/server -d

今回はここまで!
次回は実際にソースをいじってみます。

Check     このエントリーをはてなブックマークに追加
タグ: