rails not method gema función for español ejemplos cuál could ruby-on-rails devise

ruby-on-rails - not - devise rails español



Restringir Diseñar recuperación de contraseña solo para ciertos usuarios (0)

Mi aplicación tiene un sistema de suscripción previa para permitir que los usuarios se suscriban sin contraseña.

Pero los usuarios maliciosos que no han finalizado su suscripción (= aún no tienen una contraseña) podrían seguir el proceso de recuperación de la contraseña para establecer una contraseña y evitar el proceso habitual de suscripción.

Así que me gustaría que Devise brinde recuperación de contraseña solo a los usuarios que son validados (es decir, los usuarios que finalizaron su suscripción).

Si un usuario no validado ingresa su correo electrónico para tratar de obtener una nueva contraseña, me gustaría mostrarle el error "correo electrónico no encontrado", como si no lo hubiera encontrado.

No encontré dónde reemplazar a Devise para agregar dicho alcance.

Este método de Recoverable parece encajar pero no he podido personalizarlo:

# Attempt to find a user by its email. If a record is found, send new # password instructions to it. If user is not found, returns a new user # with an email not found error. # Attributes must contain the user''s email def send_reset_password_instructions(attributes={}) recoverable = find_or_initialize_with_errors(reset_password_keys, attributes, :not_found) recoverable.send_reset_password_instructions if recoverable.persisted? recoverable end

Entonces, por el momento, eliminé el control de PasswordsController pero esta no es una solución limpia.

class Users::PasswordsController < Devise::PasswordsController def create if resource_params[:email].present? && resource_class.registration_complete.where(email: resource_params[:email]).none? self.resource = resource_class.new self.resource.errors.add(:email, :not_found) render :new else super end end end