Pracuję nad tutorialem michal hart's Ruby on rails w rozdziale 8 Click here for details, utknąłem w ćwiczeniu 8.6, autor wprowadził sposób dostępu do wirtualnego atrybutu remember_token w teście integracji i pozostawił dla nas trochę pracy,Jak uzyskać dostęp do wirtualnego atrybutu remember_token w teście integracji?
assert_equal assigns(:user).FILL_IN, FILL_IN
Mam zastąpić poprawny kod symbolem zastępczym "FILL_IN". Po prostu nie mogłem wymyślić właściwego. Próbowałem z
assert_equal assigns(:user).cookies, remember_token
app/controllers/sessions_controller.rb
def create
@user = User.find_by(email: params[:session][:email].downcase)
if @user && @user.authenticate(params[:session][:password])
log_in @user
params[:session][:remember_me] == '1' ? remember(@user) : forget(@user)
redirect_to @user
Ale to nie działa, erros:
"test_login_with_remembering", UsersLoginTest, 0.590876]
test_login_with_remembering#UsersLoginTest (0.59s)
NoMethodError: NoMethodError: undefined method `cookies' for #<User:0x007f964f1a91d0>
wiem, że to coś bardzo proste, tak naprawdę Zrobiłem trochę badań, wydaje się, że nikt nie zadał tego samego pytania, ponieważ samouczek jest całkiem nowy. Proszę zrozumieć, że jestem tylko początkującym, byłbym bardzo wdzięczny, jeśli możesz mi pomóc rozwiązać ten problem.
używasz ciasteczek jak atrybut użytkownika lub metody użytkownika. Można przetłumaczyć "assigns (: user) .cookies" jako @ user.cookies, co jest nie tak (pliki cookie nie zależą od użytkownika i są przechowywane w komputerze, a nie w aplikacji szyny). – Katarzyna