ruby on rails - gema - Sobrescribir ''Devise:: RegistrationsController'' con crea personalizada da NoMethodError
rails devise login (1)
Lo descubrí, estoy usando Devise versión 3.1.1 (bloqueado para dependencias), parece is_flashing_format? fue agregado el mes pasado en 3.2.0.
Cambié el método en mi controlador a is_navigational_format? y todo está bien!
Por favor, avíseme si estoy haciendo esto de la manera incorrecta. Estoy intentando agregar un par de atributos personalizados a un usuario en el método de creación, así como llamar a mi método de análisis si el usuario está guardado.
Definí un nuevo controlador:
class RegistrationsController < Devise::RegistrationsController
def create
build_resource(sign_up_params)
resource.public_id = Utilities::generate_code
resource.referral_code = Utilities::generate_code
if resource.save
Analytics.identify(
user_id: resource.id.to_s,
traits: { email: resource.email })
yield resource if block_given?
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_flashing_format?
sign_up(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_flashing_format?
expire_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
end
end
Lo único diferente en este método de creación es que estoy agregando referral_code y public_id antes de guardar y ejecutar Analytics después.
Analytics.identify(
user_id: resource.id.to_s,
traits: { email: resource.email })
Cuando creo un usuario me estoy convirtiendo
undefined method `is_flashing_format?'' for #<RegistrationsController:0x007fdba130d9a8>
No entiendo por qué este método no se hereda. ¿Es esta la forma adecuada de modificar el diseño o agregar atributos / agregar análisis?