2011-12-04 11 views
1

私は、自分のページの「テーマ」をいくつかのプレマイドテーマの1つに変更できるRails 3.1アプリケーションを設定しています。どのActiveRecordアソシエーションがユーザーとテーマの関係を適切にモデル化しているかを調べるのに問題があります。ユーザーが選択した「テーマ」に対するActiveRecord Association

は、私のような何かを書きたい:

class User < ActiveRecord::Base 
    has_one :theme 

class Theme < ActiveRecord::Base 
    belongs_to_many :users 

しかし、「belonds_to_many」本当の団体ではない、とhas_oneのは、テーマ表の外部キーを置きます。 (Association Basicsによる)

「のテーマは、」多くの「ユーザー」で使用することができ、単一の「テーマ」を、持っているActiveRecordの「ユーザー」のための標準的な方法は何ですか?

答えて

0

この場合、ユーザーはテーマに属している必要があります。

class User < ActiveRecord::Base 
    belongs_to :theme 
end 

class Theme < ActiveRecord::Base 
    has_many :users 
end 

この場合、userテーブルにはtheme_idというフィールドがあります。

この場合、belongs_toは英語の観点から考えると、ユーザーが実際にテーマに属してはならないため、このケースでは奇妙な気分になります。しかし、一般的な経験則では、外部キーを含むモデルは、外部キーを含むモデルが属していないモデルに属するということです。

+0

ああ、「belongs_to」という英語の意味は、ちょっと奇妙で耳障りなように聞こえていましたが、一見すると正しい協会になりました。ありがとう! – blendmaster

関連する問題