Factory_Girl & CanCan: предотвращение ошибок уникальности - PullRequest
2 голосов
/ 18 октября 2011

У меня есть приложение rails с моделью для подражания CanCan.Роль имеет поле «имя», которое может вызывать для определения уровней разрешений пользователя.

В Factory Girl у меня есть множество моделей, которые ассоциируются с полем «Роль»;несколько глубоких итераций.Например: (фабрика «account» имеет связь с фабрикой «purchase», которая связана с фабрикой «user», которая связана с «ролью»)

Проблема в том, что если явызовите две фабрики, которые в конечном итоге будут ассоциированы с «ролью», вторая вызванная не сможет проверить уникальность в этой роли -> поле «имя».Обычно проверки уникальности не являются проблемой - я просто устанавливаю проблемный атрибут в последовательность ... но я не могу сделать это здесь - имя роли должно быть определенным для функциональности cancan.

Итак ... как мне обойти это?

1 Ответ

1 голос
/ 18 октября 2011

Можете ли вы создать все роли заранее, а затем просто посмотреть их по мере необходимости в тесте?

Если нет, можете ли вы создать нужную вам роль в этом конкретном тесте, а затем передать ее на Фабрику?

admin_role = Factory.create(:role, :role_name => "administrator")
Factory.create(:user, :login => "joe",  :role => admin_role)
Factory.create(:user, :login => "jane", :role => admin_role)
...