Estoy tratando de crear una aplicación usando la herramienta de composición de aplicaciones rails. Estoy usando Devise con confirmable. Estoy recibiendo el error

rake db:seed
rake aborted!
NoMethodError: undefined method `confirm!' for #<User:0xa0b26ec>

Durante el proceso de instalación.

El archivo user.rb ya tiene :confirmable

  devise :database_authenticatable, :registerable, :confirmable,
     :recoverable, :rememberable, :trackable, :validatable

No puedo hacer rake db:seed.

4
Vivek S 1 ago. 2016 a las 11:00

2 respuestas

La mejor respuesta

Se ha eliminado el método #confirm!.

https://github.com/plataformatec/devise/commit/26e22d8e953184b38a87f3a9b935db32258637d5

Tienes que usar una versión anterior o, lo que es mejor, cambiar al método #confirm.

13
Tobias 1 ago. 2016 a las 08:23

Devise 4.2.0 tiene el método confirm! depurado , debes usar confirm en su lugar .

4.2.0 - 01-07-2016

eliminaciones: -

Remove the deprecated Devise::ParameterSanitizer API from Devise 3. Please use the #permit and #sanitize methods over #for.

Remove the deprecated OmniAuth URL helpers. Use the fully qualified helpers (user_facebook_omniauth_authorize_path) over the scope based helpers ( user_omniauth_authorize_path(:facebook)).

Remove the Devise.bcrypt method, use Devise::Encryptor.digest instead.

Remove the Devise::Models::Confirmable#confirm! method, use confirm instead.

Remove the Devise::Models::Recoverable#reset_password! method, use reset_password instead.

Remove the Devise::Models::Recoverable#after_password_reset method.

De esto,

Remove the Devise::Models::Confirmable#confirm! method, use confirm instead.

Aquí está la referencia

6
Sravan 1 ago. 2016 a las 08:22