2013-02-21 3 views
7

W docs za korzystanie z TestHelpers opracować Stwierdza użyć linie takie jak ...opracować :: TestHelpers docs niejasne na Devise.mappings [:] odwzorowania użytkowania

@request.env["devise.mapping"] = Devise.mappings[:admin] 

lub

@request.env["devise.mapping"] = Devise.mappings[:user] 

... aby umożliwić programowi rozpoznanie, którego zasobu lub mapowania użyć, ponieważ kontroler testuje pomijanie routes.rb. Nie mam jasności co do tych mapowań. W tym względzie nie stworzyłem niczego szczególnego i nie mam na myśli konkretnego mapowania. Mam role użytkownika, administratora, rafinerii i superużytkownika, a la Rolify, i używam Kankana dla jego umiejętności.

Czy możesz wyjaśnić? ... może nazwa zasobu jest tym, o czym nam chodziło?

TIA. -Matt

Odpowiedz

9

Od czasu, gdy czekam na odpowiedź, moje badania wskazują, że mapowanie wskazane w dokumentacji odnosi się w rzeczywistości do zasobu, do którego dołączono Devise.

Poniżej znajduje się spekulacja z mojej strony, ale wygląda na to, że działa i zgadza się z moim skanowaniem kodu. Na przykład, jeśli masz tylko jeden zasób o nazwie użytkownika użyłeś opracować do uwierzytelniania, będzie trzeba tylko użyć następujących w konfiguracji kontrolera specyfikacji:

@request.env["devise.mapping"] = Devise.mappings[:user] 

Jednakże, jeśli masz kilka modeli jesteś uwierzytelniając przeciwko, powiedzmy Użytkownikowi i Administratorowi, musisz użyć odpowiednio:

@request.env["devise.mapping"] = Devise.mappings[:user] 

i

@request.env["devise.mapping"] = Devise.mappings[:admin] 

Prosimy zaktualizować to pytanie/odpowiedź, jeśli masz lepsze wejście.

+0

Należy oznaczyć jako poprawną odpowiedź; wynika z dokumentów. – jackyalcine