Zajmuję się projektowaniem/debugowaniem w IRB i potrzebuję zalogować się do użytkownika, a następnie móc korzystać z current_user w moich wysiłkach.Szyny 3 - Jak uzyskać dostęp do urządzenia bieżącego Devise w konsoli IRB?
Od Brian Deterling na answer do innego pytania, udało mi się pomyślnie zalogować się i uzyskać dostęp do odpowiedzi strony z tej sekwencji:
>> ApplicationController.allow_forgery_protection = false
>> app.post('/sign_in', {"user"=>{"login"=>"some-login-id", "password"=>"some-password"}})
>> app.get '/some_other_path_that_only_works_if_logged_in'
>> pp app.response.body
. Uwaga: Jeśli pojawi się odpowiedź 200 Nie jesteś zalogowany w was potrzebujesz przekierowania 302, aby wskazać pomyślne logowanie. Zobacz odpowiedź Tima Santeforda.
byłem w stanie uzyskać informacje o sesji:
1.9.3-p125 :009 > app.session
=> {"_csrf_token"=>"1yAn0jI4VWzUH84PNTH0lVhjpY98e9echQGS4=", "session_id"=>"89984667d30d0fec71f2a5cbb9017e24"}
Próbowałem wszystkiego można myślę, aby spróbować dostać się do current_user
poprzez app
i app.session
, ale bez powodzenia. Jak mogę uzyskać current_user
?
Próbowałem już, i to faktycznie działa. – Pierre
Próbowałem, a current_user jest zerowe. Kiedy wykonuję procedurę logowania opisaną w pytaniu, otrzymuję odpowiedź 200, a app.session zwraca csrf_token, więc wiem, że jestem zalogowany. app.controller odpowiada stronami i stronami danych. Ale app.controller.current_user zwraca zero. Używam Devise - jesteś? –
Wygląda na to, że problem z przydziałem mas na app.post spowodował, że mój login się nie powiódł (200 odpowiedzi nie jest udanym postem w tym przypadku - bardzo mylącym). Kiedy otrzymałem odpowiedź 302, działa app.controller.current_user. Nie znalazłbym problemu z logowaniem bez odpowiedzi Tima Santeforda. –