2013-07-30 15 views
5

Przepraszamy za głupie pytanie, ale co dokładnie są w opracowaniu zakresów? Problem, na który napotykam, polega na tym, że chcę dodać do kontrolera metodę sign_out i nie mogę tego zrobić, ponieważ config.sign_out_all_scopes jest domyślnie ustawiony na true, więc zmiana na false pomoże, ale nie rozumiem, co to jest config faktycznie to robi. Wygląda na to, że to prawda, wyloguje wszystkich: adminów lub wszystkich: użytkowników, wylogowując jednego, ale to nie ma dla mnie sensu. Czy "zasięg" jest rzeczywiście użytkownikiem? Co dokładnie zmieni się, jeśli przełączę tę opcję? Dziękuję bardzo z góry.Co exaclty są w opracowaniu zakresów?

Odpowiedz

4

Program Devise umożliwia oddzielenie użytkowników do różnych "zakresów", takich jak "admin" i "członek", czego efektem jest uzyskanie zestawu tras, kontrolerów i widoków dla każdego zakresu.

Użytkownik może należeć do wielu zakresów i zalogować się do dowolnej/wszystkich z nich w dowolnym czasie - więc jeśli opcja sign_out_all_scopes jest prawdziwa, wylogowanie się jako dowolny zakres spowoduje wylogowanie wszystkich użytkowników aktualnie zalogowanych w zasięgach.

Odnośnie konkretnego pytania - dlaczego definiujesz własną metodę wylogowania? Dewise zapewnia ci jeden. Jeśli chcesz zmodyfikować metodę wylogowania, upewnij się, że postępujesz zgodnie z the instructions w celu prawidłowego rozszerzenia kontrolerów devise.

+0

Co chciałem zrobić, to dodać coś, aby dodać metodę sign_out do mojej funkcji w kontrolerze, która wyloguje osobę przed przekierowaniem, ale używając domyślnego sign_out: user # sign_out (scope) sign_out @user # sign_out (zasób) kończy się na "błędnej liczbie argumentów" –