既存のDBとRailsを組み合わせて使う(3)〜_idというカラム名の対応
とりあえず scaffold して見るといくつかのカラムが表示されない。すべて「job_id」のように最後に「_id」のついたカラムだ(ところで scaffold は外部参照を追っかけてビューに出力するコードを出してくれるんだっけ?)。Rails の規約では,最後に「_id」のついたカラム名は,「_id」を取り払ったテーブルへの外部参照になる。ところが今まで使ってきたこの DB には
- 「name_id って名前で外部参照してるけど,参照先はnameテーブルじゃないし,プライマリーキーは id じゃない」カラム
- 「hoge_id って名前だけど外部参照じゃない」カラム
があるのだ。
最初の問題はモデルで :foreign_key を指定すればいいのだろうか?
class Membert < ActiveRecord::Base belongs_to :job_master, :foreign_key => 'job_id' validates_presence_of :job_id end
このへんよく分からず。
二番目の問題は,例えば上記でバリデートエラーが出るとき「job_idを入力してください」にならず「jobを入力してください」になってしまう。
このへんは抑制できないのかなあ。ってできるよね。先は長い。
かんたんRuby on RailsでWebアプリケーション開発
- 作者: arton
- 出版社/メーカー: 翔泳社
- 発売日: 2006/07/27
- メディア: 大型本
- 購入: 5人 クリック: 211回
- この商品を含むブログ (89件) を見る