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
on 28.04.2008 15:46
on 28.04.2008 15:52
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>
on 28.04.2008 16:13
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>:
on 28.04.2008 16:19
@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>
on 28.04.2008 16:37
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
on 28.04.2008 17:09
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ó:
on 28.04.2008 18:03
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
on 28.04.2008 19:18
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ó:
on 28.04.2008 19:21
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>:
on 28.04.2008 19:56
>>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ó:
on 28.04.2008 20:25
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>:
on 28.04.2008 20:47
>>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ó:
on 29.04.2008 00:29
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ó:
on 29.04.2008 09:57
>>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ó: