私は標準フィールドを持つDevise Userモデルを持っています。ユーザーは、いずれかのプロファイルまたはハウスを持つことができますが、両方を持つことはできません。Rails - アソシエーションを使用して二分法を実施する
class User < ActiveRecord::Base
attr_accessible ..... :profile_type
has_one :profile, :dependent => :destroy
has_one :house, :dependent => :destroy
end
この現在の状態では、ユーザーはプロファイルと状態の両方を持つことができます。次のようにします:User.first.profileはプロファイルを返します。その後、User.first.houseを実行してnilを返します。それは非常にいいとは思われません - 実際、私は後で無効なデータの問題に遭遇するようです。
編集:これは、人々が滞在する場所を探しているか、滞在する場所がある場合のためです。だから私は人ができるユーザーの2つのカテゴリがあります。これらの2つのカテゴリは非常に異なっています(つまり、滞在する場所を探している人は、滞在する場所の人に非常に異なるフィールドを持ちます)。
この「どちらか」の関係を強制することはありますか?私はRailsがあなたに心を新しくしています。あなたはカスタム検証でこれを扱うことができる
[可能なモデルは "belongs_to"または複数のモデルのいずれかですか?](http://stackoverflow.com/questions/1700800/can-a-model-belongs-to-either-or-more) -than-one-model) –
その質問はちょっと違うようですが、私は100%確信していません。 –