Ruby on Rails tutorial - 8.6 Exercises

Kategorie: Programování » Ruby on Rails » Ruby on Rails tutorial - 8.6 Exercises

Datum vydání: 04. 04. 2015

Uvádím zde řešení cvičení k tutoriálu Ruby on Rails od Michaela Hartla – kapitoly 8.6 úlohy 2.

Listing 8.61

Místo ? bude v kódu uveden @. Kód souboru app/controllers/sessions_controller.rb bude následující:

   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
    else
      flash.now[:danger] = 'Invalid email/password combination'
      render 'new'
    end
  end

Listing 8.62

Kód souboru test/integration/users_login_test.rb bude upraven následovně:

  test "login with remembering" do
    log_in_as(@user, remember_me: '1')
    assert_equal assigns(:user).remember_token, cookies['remember_token']
  end

Řešení je také popsáno na stránce How to access virtual remember_token attribute in the integration test?.