Saludos,
Tenia en una variable de session (session[:user_id) almacenado el id
del usuario para así poder controlarlo entre los distintos
controllers, pero resulta que si un modelo por el motivo “x” requiere
saber ese valor indica el error “session no es un método definido”
Les pongo un trozo de código para ver si así se ve mejor lo que quiero
tratar de hacer
class Post < ActiveRecord::Base
after_save :show_msg
def show_msg
logger.info( “usuario_id #{session[:user_id]} acaba de insertar
un registro” )
end
end
Sabes si es posible pasarle el valor session[:user_id] al modelo? o
podrían orientarme para, si no es posible, realizarlo de otra manera.
Muchas gracias.
Un saludo.
No se como tienes definidos los modelos, pero posiblemente tendras
algo como
class Post < ActiveRecord::Base
belongs_to :user
end
De manera que puedes hacer …
class Post < ActiveRecord::Base
belongs_to :user
after_save :show_msg
def show_msg
logger.info("usuario_id #{user_id} acaba de insertar un
registro")
end
end
Un saludo,
Francesc
Gracias Francesc, el tema es que Post no esta relacionado directamente
con Users de hay el lío
estaba jugando con las relaciones
polimorficas por eso Post y User tienen una tabla “relaciónes” que les
une.
Voy a seguir dandole vueltas.
Gracias.
El 20/05/2008, a las 20:29, Francesc E.
escribió:
a mi personalmente no me gusta el acceder a la sesión desde el modelo de
datos, ya que entiendo que éste deber ser lo más ‘agnóstico’ posible en
cuanto al tipo de aplicación en el que está viviendo. si necesitas saber
el valor de esta variable, yo se la asignaría desde el propio
controlador, pero no pedirla directamente desde
ahí.aunque ya se sabe, que para gustos, los colores…
salud!
alarkspur
escribió:> Saludos,
Muchas gracias.
Un saludo.
Ror-es mailing list
[email protected]
http://lists.simplelogica.net/mailman/listinfo/ror-es
–
/**
Si como dice Borja Martin porque no pones en el modelo un
attr_accessor :user_id
asi no se grabara en bd pero es una propiedad del modelo
entonces en el controlador pones
modelo.user_id = session[:user_id]
o algo similar, y ya tendrias ese atributo con el dato requerido desde
el
modelo
pero bueno suerte con eso
Ing. Omar S. Jimenez Becerra
El dÃa 20/05/08, Borja MartÃn [email protected] escribió:
“For fuck’s sake, STOP asking this question in IRC”
“You’re completely/totally/fucking wrong if you want to access
sessions, params, cookies, etc. in your Models.”
http://m.onkey.org/2007/10/17/how-to-access-session-cookies-params-request-in-model
Pues eso, que si se puede, pero es feo, muy feo.
Un saludo,
Francesc
Muchas gracias a todos por las opiniones y ayuda. Con lo maniático que
soy y leyendo vuestras opiniones al final he re-hecho el “ejercicio”
de nuevo y esta solucionado con un before_filter en el controlador,
aunque aun no me convence
… seguiré dandole vueltas.
Lo dicho, muy amables, gracias.
Un saludo.
El 21/05/2008, a las 0:59, Francesc E.
escribió:
Gracias Borja por tu
opinión
a mi personalmente no me gusta el acceder a la sesión desde el
modelo de
datos
¿pero es posible? yo por mas vueltas que le he dado no me ha sido
posible.
si necesitas saber el valor de esta variable, yo se la asignaría
desde el propio
controlador,
En un principio lo tenia realizado desde el controlador como indicas
pero no me terminaba de convencer, así con el modelo, aunque no ha ido
bien 
Saludos