風邪をひきました。明日はRails勉強会があるんですが、今回も行けなそうです。
もうろうとしながら前回の続き、エディタを起動したところからです。
■db/migrate/002_create_friendships.rbを編集
Friendshipというモデルを作成したときに、このファイルも一緒に生成されています。ここにテーブル定義を書いておけば後でコマンド一つで、テーブルを作成することができます。
def self.up
create_table :friendships do |t|
t.column :user_id, :integer
t.column :friend_id, :integer
end
end
friendships(複数形になってることに注意)テーブルを、id,user_id,friend_idというカラムで作成しますよという記述。idカラムは書かなくても自動でつきます。
■db/migrate/003_create_statuses.rbを編集
同じくStatusというモデルを作ったので対応するテーブルの定義をここに
def self.upstatusesテーブルが、id,user_id,desc,created_onで作成されます。user_idはusersテーブルの外部キーになります。user_idとしておくことで、簡単にusersテーブルとこのテーブルのデータを関連づけることができます。それとcreated_onというdatetimeのカラムを作っておくと、データが作成された時に自動でその時間を入れてくれます。
create_table :statuses do |t|
t.column :user_id, :integer
t.column :desc, :string
t.column :created_on, :datetime
end
end
■config/routes.rbを編集
Railsでは、基本的に「http://host/controller名/action名」というURLでアクセスします。このルールはconfig/routes.rbに書いてあって、それをカスタマイズすれば自分の好きなURLをつけることができます。
map.connect "", :controller => "user", :action => "home"http://host/とアクセスされたら、user_controller.rbのhomeアクションを実行します
map.connect ":user", :controller => "user", :action => "show"ルールのところ文字列に:がついている場合、それは変数とみなされます。つまり、http://host/hogeでもhttp://host/fugaでもこのルールが実行されます。
このroutes.rbはかなり熱いです。何が熱いって、サイトのURLを自在にカスタマイズできるんですが、いろいろやろうとするとパズルみたいになってきて、ホントに一筋縄ではいかない。
だがそれがいい
押忍
仮想化環境で求められるストレージの要件
ZDNet Japan Green IT
APC SOLUTIONS FORUM 2008をレポート
ZDNet Japan ホスティング特集
DELLが掲げる「新・仮想化アセスメントサービス」
Webセキュリティ特集
「シンプル」&「低コスト」な運用管理
セキュリティ対策レベルテスト公開!
Techno Exchange
フォトレポート:飛行機の祭典--米国最大、オシュコッシュ航空ショー
L・トーバルズ氏:「主要Linuxプログラマーになるのは楽じゃない」
ブログの未来はどうなる--新しいコミュニケーション手段「ライフストリーミング」