2010-05-03 3 views
0

Итак, я новичок в Ruby и Rails, и я пытаюсь сделать то, что, как мне кажется, называется вложенной ассоциацией (пожалуйста, поправьте меня, если это неправильная терминология). В настоящее время у меня есть модель User и модель Domains, и у меня есть много разных ассоциаций (используя has_many: through) между ними, и это работает нормально.Проблема с вложенными ассоциациями Rails

Теперь я хочу расширить это, чтобы разрешить одну роль для каждого домена для каждого пользователя (например, User1 является членом Domain1 и имеет роль «Admin»). Я установил модель ролей с одним полем (имя: строка) и создал три роли. Я также добавил столбец role_id в таблицу соединений (членство). Я ожидал, что (и это, вероятно, вопрос), чтобы иметь возможность просто использовать

user1 = User.find(1) 
user1.domains.first 
=> <some domain object> 
user1.domains.first.role 
=> <some role object> 

но это возвращает метод не определена ошибка.

Может ли кто-нибудь сказать мне, что я не могу понять здесь?

Мои модели классов можно увидеть на http://gist.github.com/388200

ответ

0

Вы не имеете отношения между domain и role, это является причиной того, что вы получаете сообщение об ошибке при попытке использовать user1.domains.first.role.

+0

Я по-прежнему изо всех сил пытаюсь получить эту рабочую область в домене. Я хочу, чтобы каждый пользователь имел отдельную роль в каждом домене, членом которого он является. Можете ли вы объяснить, какую ассоциацию мне нужно достичь? –

Смежные вопросы