Необязательные или условные ассоциации модели в Rails

У меня есть модель пользователя. Пользователи могут иметь 1 из 3 ролей: роль1, роль2, роль3. Это представлено столбцом 'role' в модели пользователя. Каждая роль имеет уникальный профиль. role1_profile, role2_profile, role3_profile. Каждый *_профиль является моделью.

Как мне представить эту необязательную ассоциацию в Rails?

Я пробовал двумя разными способами:

class User < ActiveRecord::Base
    #FIRST WAY
    if current_user.role == 'role1' then has_one :role1_profile end 
    #SECOND WAY
    has_one :role1_profile, :conditions => ['user.role = ?', 'role1']
end

Но это не работает. Какой способ является правильным?

5
задан hrdwdmrbl 11 October 2011 в 22:33
поделиться