Error With Rememberable in Devise Gem Rails

Bei der Entwicklung mit Rails und Devise bin ich auf das Problem gestossen, dass ich den Remember Haken nicht setzen konnte. Beim Einloggen mit gesetztem Haken ist bei mir immer folgende Fehlermeldung aufgetreten:

authenticable_salt returned nil for the User model. In order to use rememberable, you must ensure a password is always set or implement rememberable_value in your model with your own logic.

Um dies zu beheben, muss man einen remember token einfuehren. Das User Model wird um eine Spalte remember_token erweitert.

1
rails generate migration AddRememberTokenToUsers
1
2
3
4
5
class AddRememberTokenToUsers < ActiveRecord::Migration
  def change
    add_column :users, :remember_token, :string
  end
end

Die users.rb muss um eine rememeberable_value Methode erweitert werden damit der Token gesetzt wird. Diese wird vor dem Anlegen des Eintrages mit before_create aufgerufen und setzt den Device.friendly_token als remember_token.

1
2
3
4
5
before_create :rememberable_value

def rememberable_value
  self.remember_token ||= Devise.friendly_token
end

Dann verschwindet schlie├člich auch die Fehlermeldung und eine Anmeldung mit Remember Haken funktioniert.

Comments

GitHub Repos

  • Status updating...