Hola como estan!
tengo una duda respecto al manejo de exceptions en rails .
en mi modelo User.rb , tengo un
before_destroy :dont_destroy_admin
def dont_destroy_admin
raise “No podemos eliminar al admin” if self.role == 1
end
y en mi UsersController:
def delete_user
begin
User.find(params[:id]).destroy
flash[:main_notice] = ‘user deleted’
redirect_to :action => ‘index’,:lang=>‘es’
rescue
flash[:main_notice] = ‘cant destroy admin’
redirect_to :action => ‘index’,:lang=>‘es’
end
end
pero si luego intento poner otro before_destroy, no me elimina nada, mi
idea
es hacr que el usuario no se pueda eliminar a el mismo
algo asi como un
before_destroy :dont_destroy_myself
def dont_destroy_myself
raise “No podemos eliminarte a ti mismo” if self.id ==
@current_user.id
end
pero con esto no puedo eliminar a ningun usuario, ni el admin, ni el
current
, ni ningun otro.
en mi controller luego hago dos rescues para tratar de detectarlos ,
pero
seguro que no es asi como se hace:
def delete_user
begin
User.find(params[:id]).destroy
flash[:main_notice] = ‘user deleted’
redirect_to :action => ‘index’,:lang=>‘es’
rescue
flash[:main_notice] = ‘cant destroy admin’
redirect_to :action => ‘index’,:lang=>‘es’
rescue
flash[:main_notice] = ‘cant destroy you’
redirect_to :action => 'index',:lang=>'es'
end
end
agradecerÃa la ayuda de ustedes, muchas gracias de antemano