У меня есть модель 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, возвращая нуль. Это не кажется очень приятным - на самом деле кажется, что позже я столкнусь с недействительными данными.
Редактировать: Это место, где люди либо ищут место для проживания, либо у них есть место для проживания. Поэтому у меня есть две категории пользователей, которыми может быть человек. Эти две категории очень разные (т. Е. Человек, ищущий место для проживания, будет иметь очень разные поля для человека, у которого есть место для проживания).
В любом случае, чтобы обеспечить соблюдение этих «отношений»? Я очень новичок в Rails.
Возможный дубликат [Может ли модель «принадлежит» к одной или более одной модели?] (Http://stackoverflow.com/questions/1700800/can-a-model-belongs-to-either-or-more -than-one-model) –
Этот вопрос кажется немного другим, но я не уверен на 100% –