DB定義してURL定義して

2007年11月17日 09:50
トラックバック (0)   コメント (0)

風邪をひきました。明日は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.up
    create_table :statuses do |t|
      t.column :user_id, :integer
      t.column :desc, :string
      t.column :created_on, :datetime
    end
  end
statusesテーブルが、id,user_id,desc,created_onで作成されます。user_idはusersテーブルの外部キーになります。user_idとしておくことで、簡単にusersテーブルとこのテーブルのデータを関連づけることができます。それとcreated_onというdatetimeのカラムを作っておくと、データが作成された時に自動でその時間を入れてくれます。


■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を自在にカスタマイズできるんですが、いろいろやろうとするとパズルみたいになってきて、ホントに一筋縄ではいかない。

だがそれがいい

押忍

最新エントリー
カテゴリ
月別のアーカイブ
プロフィール
吉見和也(Kazuya Yoshimi)
RAWHIDE.(ローハイド.)取締役兼最高技術責任者。Rubyで開発する心地よさに惚れ、Ruby道を邁進する日々。迷わず行けよ、行けばわかるさ、Ruby道。押忍!
Powered by
 

企画特集

仮想化環境で求められるストレージの要件仮想化環境で求められるストレージの要件
それに応えるNetAppの実力とは?
ZDNet Japan Green ITZDNet Japan Green IT
サミットだけでは終わらせない!エンタープライズの取り組みはこれからだ!
APC SOLUTIONS FORUM 2008をレポートAPC SOLUTIONS FORUM 2008をレポート
電源、冷却の効率化によるエネルギー削減とは?
ZDNet Japan ホスティング特集ZDNet Japan ホスティング特集
2008年夏のホスティングサービスのトレンドは何?
DELLが掲げる「新・仮想化アセスメントサービス」DELLが掲げる「新・仮想化アセスメントサービス」
〜企業システムの仮想化環境の構築を支援〜
Webセキュリティ特集Webセキュリティ特集
Web2.0時代の脅威へ対抗するためのソリューションとは?
「シンプル」&「低コスト」な運用管理「シンプル」&「低コスト」な運用管理
IT運用管理に関するアンケート実施中!
セキュリティ対策レベルテスト公開!セキュリティ対策レベルテスト公開!
自社のセキュリティのウイークポイントはドコ?
Techno ExchangeTechno Exchange
RackableとCTCの地球にやさしい関係
フォトレポート:飛行機の祭典--米国最大、オシュコッシュ航空ショー
米国最大の航空ショーであるオシュコッシュ航空ショーが米国時間7月28日から8月3日まで開催された。このフォトレポートではその模様をお届けする。
L・トーバルズ氏:「主要Linuxプログラマーになるのは楽じゃない」
Linuxの生みの親であるL・トーバルズ氏が、Linuxカーネルの開発について、新規の開発者がまず心得ておくべきことをインタビューで語った。
ブログの未来はどうなる--新しいコミュニケーション手段「ライフストリーミング」
最近、ブログ世界の変化が話題になっているが、ブログに続くコミュニケーション形態としてライフストリーミングが注目を集めている。