[前][次][番号順一覧][スレッド一覧]

rails:1703

From: "真中洋嗣" <manaka.y@g...>
Date: Wed, 11 Oct 2006 21:52:13 +0900
Subject: [rails:1703] Re: リレーションシップの外部参照 id が使えない

こんにちは、manakayと申します。

> 早速ですが、下のようなモデルを使って、1対1のリレーションを使おうとしています。
>
> class Article < ActiveRecord::Base
>   has_one :comment
> end
>
> class Comment < ActiveRecord::Base
>   belongs_to :article
> end

CommentはArticleにbelongしているわけですから、CommentテーブルにはFKが必要です。
ただのidキーはRailsではレコードのインスタンスを表すポインタみたいなものなので、article_idが必要です。article_idをテーブルに使えない理由でもあるのでしょうか。


> PPS 下のようなコードだと、エラーは発生しません。
> class Article < ActiveRecord::Base
>   has_one :comment
>           :foreign_key => "id"
> end

Articleの主キーをFKにも指定しているので、いつかおかしなことになりそうな気がします。1対1なので動くことは動くでしょうけど。それになにより気持ち悪いですよね。
article_idを使えないのなら、なにか別名のキーを用意して、それを:foreign_keyで指定してやればいいと思います。

-- 
//--------------------------------------------------------
//  manakay
//  http://d.hatena.ne.jp/manaka_y/
//  manaka.y@g...
//--------------------------------------------------------

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1701 2006-10-10 17:27 [hoti_jp@y...        ] リレーションシップの外部参照 id が使えない 
->    1703 2006-10-11 14:52 ┗[manaka.y@g...       ]