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
Guarda el nombre de usuario en una variable antes de borrarlo.
On Mon, Apr 28, 2008 at 10:38 AM, Andrés gutiérrez
[email protected]
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 P. [email protected]:
Hola,
Juan P. 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
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
- 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 [email protected]
escribió:
@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
[email protected]
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) [email protected]
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 [email protected]:
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. ::. [email protected] escribió:
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 R. [email protected]
escribió:
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 M. <
[email protected]> escribió:
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 [email protected]:
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. [email protected]
escribió:
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
[email protected]
escribió: