Ruby Forum Rails-ES > Nombre usuario borrado

Posted by Andrés gutiérrez (Guest)
on 28.04.2008 15:46
(Received via mailing list)
hola, estoy jugando con Restful_authentication y me ha surgido una duda.

Si yo tengo una simple gestion de usuarios en la que puedo (edit, 
update,
show y delete)
En el delete tengo esto (en el controlador)

  def destroy
    @user = User.find(params[:id])
    @user.destroy
    flash[:notice] = 'El usuario fue eliminado.'
    respond_to do |format|
      format.html { redirect_to(users_url) }
      format.xml  { head :ok }
    end
  end

como o dónde puedo poner un flash[:notice] que me diga despues de borrar 
un
usuario (p.e.: "Andrés"]

---> El usuario [Andrés] fue eliminado

ya veo que en el metodo destroy hay ese flash notice (lash[:notice] = 
'El
usuario fue eliminado.'), pero no se como pasarle el nombre del usuario
borrado, ya que se pierde despues de @user.destroy no?

gracias y un saludo
Posted by Juan Pablo (Guest)
on 28.04.2008 15:52
(Received via mailing list)
Guarda el nombre de usuario en una variable antes de borrarlo.

On Mon, Apr 28, 2008 at 10:38 AM, Andrés gutiérrez 
<andresgutgon@gmail.com>
Posted by Andrés gutiérrez (Guest)
on 28.04.2008 16:13
(Received via mailing list)
Asi?

  >> def destroy
    >>@user = User.find(params[:id])
    @borrado = User.find(params[:id])

>>@user.destroy
    >>flash[:notice] = '#{@borrado} fue eliminado.'
    >>respond_to do |format|
     >> format.html { redirect_to(users_url) }
      >>format.xml  { head :ok }
    >>end
  >>end

2008/4/28 Juan Pablo <juanpare@gmail.com>:
Posted by Juan Pablo (Guest)
on 28.04.2008 16:19
(Received via mailing list)
@user = User.find(params[:id])
*@name = @user.name*
@user.destroy

No es necesario que busques dos veces el mismo usuario en la base de 
datos.

On Mon, Apr 28, 2008 at 11:13 AM, Andrés gutiérrez 
<andresgutgon@gmail.com>
Posted by javier ramirez (Guest)
on 28.04.2008 16:37
(Received via mailing list)
Hola,

Juan Pablo wrote:
> @user = User.find(params[:id])
> *@name = @user.name <http://user.name>*
> @user.destroy
>
en realidad no necesitas la variable name. Aunque borres el usuario, la
variable @name sigue manteniendo el valor de los campos. Eso sí, deja
los atributos "congelados" de forma que no puedas modificar el objeto
una vez hecho el destroy, pero consultarlo puedes mientras estés en 
scope.

saludos,

javier ramírez
Posted by Andrés gutiérrez (Guest)
on 28.04.2008 17:09
(Received via mailing list)
A ver, lo primnero muchas gracias por las respuestas. Y en cuanto a la 
duda,
lo estoy haciendo de estas dos formas:
1)
  def destroy
    @user = User.find(params[:id])
    @user.destroy
    flash[:notice] = '#{@user.email} fue eliminado.'
    respond_to do |format|
      format.html { redirect_to(users_url) }
      format.xml  { head :ok }
    end
  end

2)  def destroy
    @user = User.find(params[:id])
   @borrado= @user.email
    @user.destroy
    flash[:notice] = '#{@borrado} fue eliminado.'
    respond_to do |format|
      format.html { redirect_to(users_url) }
      format.xml  { head :ok }
    end
  end

Ninguno de los dos me muestra el nombre. Lo estoy escribiendo mal, pero 
no
sé que

El día 28 de abril de 2008 16:36, javier ramirez <jramirez@aspgems.com>
escribió:
Posted by Sergio Cambra .:: entreCables - Symbol Servicios (Guest)
on 28.04.2008 18:03
(Received via mailing list)
El Monday 28 April 2008 15:38:29 Andrés gutiérrez escribió:
>     respond_to do |format|
> ya veo que en el metodo destroy hay ese flash notice (lash[:notice] = 'El
> usuario fue eliminado.'), pero no se como pasarle el nombre del usuario
> borrado, ya que se pierde despues de @user.destroy no?
>
> gracias y un saludo

No se pierde, se borra de la base de datos pero lo que se hubiera leido 
de la
base de datos sigue en la variable

--
Sergio Cambra .:: entreCables - Symbol Servicios Informáticos S.L. ::.
Nicolás Guillén 6, locales 2 y 3. 50.018 Zaragoza
T) 902 021 404 F) 976 52 98 07 E) sergio@entrecables.com
Posted by Andrés gutiérrez (Guest)
on 28.04.2008 19:18
(Received via mailing list)
No se pierde, se borra de la base de datos pero lo que se hubiera leido 
de
la
base de datos sigue en la variable

vale, entiendo que la información sigue en la variable, pero mi problema 
es
que con el código que he mostrado arriba, no consigo recuperar esa
información. Que estoy hacciendo mal?

El día 28 de abril de 2008 18:03, Sergio Cambra .:: entreCables - Symbol
Servicios Informáticos S.L. ::. <sergio@entrecables.com> escribió:
Posted by Antonio Reina (Guest)
on 28.04.2008 19:21
(Received via mailing list)
Hola Andrés,

Existe ese campo? Es decir, user tiene un atributo que sea email? Quizás
este vacio por algún motivo. Lo más fácil sería debuggear la aplicación, 
y
poner un breakpoint en ese punto y ver que atributos tiene @user

Saludos,

2008/4/28 Andrés gutiérrez <andresgutgon@gmail.com>:
Posted by Andrés gutiérrez (Guest)
on 28.04.2008 19:56
(Received via mailing list)
>>Existe ese campo? Es decir, user tiene un atributo que sea email? Quizás
este vacio por algún motivo. Lo más fácil sería debuggear la aplicación, 
y
poner >>un breakpoint en ese punto y ver que atributos tiene @user
Existe. Atributo te refieres a un campo de la tabla User? si es eso 
existe y
esta relleno.


El día 28 de abril de 2008 19:20, Antonio Reina <a.reina@gilberte.com>
escribió:
Posted by Miguel Michelson (samek)
on 28.04.2008 20:25
(Received via mailing list)
prueba a cambiar esto '#{@user.email} fue eliminado.'
por esto "#{@user.email} fue eliminado."

tengo entendido que con las comillas simples no interpreta la variable, 
asi
que prueba con comillas dobles

Saludos


2008/4/28 Andrés gutiérrez <andresgutgon@gmail.com>:
Posted by Andrés gutiérrez (Guest)
on 28.04.2008 20:47
(Received via mailing list)
>>prueba a cambiar esto '#{@user.email} fue eliminado.'
>>por esto "#{@user.email} fue eliminado."

>>tengo entendido que con las comillas simples no interpreta la variable,
asi que prueba con comillas dobles

Era eso, confirmado, con comillas simples NO lee las variables en los 
hash
flash[:notice]

Muchas gracias Miguel. Son de estas cosas que las puedes dejar pasar, 
pero
que en el fondo te jode no poder resolver.

El día 28 de abril de 2008 20:24, Miguel Michelsongs <
miguelmichelson@gmail.com> escribió:
Posted by Ruben Davila (rdavila)
on 29.04.2008 00:29
(Received via mailing list)
Hola Andres, lo que te ha sucedido es el comportamiento normal de Ruby,
cuando quieres usar "interpolación", osea obtener el valor de una 
variable
dentro de una cadena debes usar la notacion: #{aqui_variable} y la 
cadena
debe estar entre comillas dobles, para todo lo demas existe MasterCard, 
digo
las comillas simples.

Saludos.

El día 28 de abril de 2008 13:44, Andrés gutiérrez 
<andresgutgon@gmail.com>
escribió:
Posted by Andrés gutiérrez (Guest)
on 29.04.2008 09:57
(Received via mailing list)
>>Hola Andres, lo que te ha sucedido es el comportamiento normal de Ruby,
cuando quieres usar "interpolación", osea obtener el valor de una 
variable
dentro >>de una cadena debes usar la notacion: #{aqui_variable} y la 
cadena
debe estar entre comillas dobles, para todo lo demas existe MasterCard, 
digo
las >>comillas simples.

Gracias por la explicación Ruben

El día 29 de abril de 2008 0:29, Ruben. D. <ruben.grunge84@gmail.com>
escribió: