社員名簿(2)
DBのことがよくわらかないままなので、そこを調べながらいきます。
一度、phpMyAdminで作ってみたので、これをRailsからDBのテーブルを用意してみることにします。
ディレクトリを用意しておく
ここらへんは、どこでもいいらしい。
mkdir sample cd sample
modelを作る
このgenerateもいろいろなものが作れるらしい
script/generate model person
migrateを使用する
このmigrateは、テーブルを生成してくれる。
また、バージョン管理や、スキームも残しておいてくれる。たぶん、ここら辺が変更に強いといわれる原因じゃないかと。
参考「http://tam.qmix.org/wiki/Migration.html」
vi db/migrate/001_create_people.rb
class CreatePeople < ActiveRecord::Migration def self.up create_table :people do |t| t.column :join, :date t.column :name, :string t.column :furi, :string t.column :birth, :date t.column :sex, :string t.column :no, :integer t.column :team, :string t.column :photo, :string t.column :address, :string t.column :tel, :string t.column :mail, :string t.column :url, :string end end def self.down drop_table :people end end
rakeの実行
rake migrate
その結果
mysql> describe people; +---------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | join | date | YES | | NULL | | | name | varchar(255) | YES | | NULL | | | furi | varchar(255) | YES | | NULL | | | birth | date | YES | | NULL | | | sex | varchar(255) | YES | | NULL | | | no | int(11) | YES | | NULL | | | team | varchar(255) | YES | | NULL | | | photo | varchar(255) | YES | | NULL | | | address | varchar(255) | YES | | NULL | | | tel | varchar(255) | YES | | NULL | | | mail | varchar(255) | YES | | NULL | | | url | varchar(255) | YES | | NULL | | +---------+--------------+------+-----+---------+----------------+ 13 rows in set (0.01 sec)
というわけで、しっかりテーブルが出来ます。すごいなあ。
scaffoldの実行
ruby script/generate scaffold person
結果
きちんと動くんだけれど、URLがみたら、複数形のpeopleになっていて驚いた。
ただ単に、person「s」とかになるものだと思っていたので。
DBが変更になったり、なにをテーブルに設定したのかが、残っていること、バージョン管理できることなどなど、ここらへんが実は強みなんだろうなあ、と思いました。