Gracias Luis. Extraer las tareas desde el usuario fue algo que probé, pero se me complicó cuando quise hacer eso mismo con una paginación. Los has_many y belogns_to están todos. Como agregarías el current_usuario.horas en ese código que dejé con el helper de paginación?
@hora_pages, @horas = paginate :horas, :per_page => 10,
:joins => "inner join tareas on tareas.id =
horas.tarea_id",
:conditions => ["tareas.usuario_id = ?", current_usuario]
Anexo a este email un diagrama del modelo de datos para que se entienda algo
más lo que estoy haciendo.
Por otro lado... además de traer las tareas de un usuario, tengo que
aplicarles otro filtros a la consulta extras (como puede ser la fecha de
esas horas cargadas).
Como harías esto? Se puede hacer algo como agrego acá abajo?
current_usuario.horas :conditions => ["fecha = ?", DateTime::now]
Me parece que fui muy "creativo" con esta linea de código :)
Desde ya gracias de nuevo por la ayuda.
Lautaro.
On 5/17/07, Luis Lavena <[EMAIL PROTECTED]> wrote:
On 5/17/07, Lautaro Bonetto <[EMAIL PROTECTED]> wrote: > Hola a todos de nuevo. Tengo una nueva consulta. > > Estoy armándome una pequeña aplicación web de carga de horas. En la pantalla > de carga quiero que cada usuario veo sólo las horas que él cargo. Entonces > aplico la siguiente condición en la paginación. > > @hora_pages, @horas = paginate :horas, :per_page => 10, > :joins => "inner join tareas on tareas.id = > horas.tarea_id", > :conditions => ["tareas.usuario_id = ?", > current_usuario] > > Esto se debe a que los usuario están relacionados sólo con "tareas" y estos > usuarios cargar "horas" a estas tareas. Cada "tarea" esta asignada a un > único usuario, por lo que todas las "hora" relacionadas a esta tarea son de > ese usuario. (Como que es difícil contarlo. Espero se entienda) > Si, algo, pero algo tambien se entiende. > La cuestión es que tengo que mostrar a varios lados del sitio estas horas y > siempre debo agregar esta condición. Entonces pensé que quizás sea una buena > idea filtrar en el modelo "Hora" esta condición. De tal forma que cada vez > que haga un FIND ya le aplique el filtro y muestre sólo las del usuario > logueado. > > O sea... > @horas = Hora.find :all > ya traiga las hora del "current_usuario" y no la de todos. > Aja, y por que no lo haces al reves? @horas = current_usuario.horas y en el modelo de Usuario especificas la condition en el has_many? > Es posible esto? (Estoy pidiendo mucho?) > Como sería el código de éste filtro? > Ah, si escribo me va a salir cualquier cosa, estoy con el cerebro en off... a ver... class User < AR has_many :hours, :though => :tasks end A ver... creo ahi esta: class Task < AR belongs_to :user has_many :hours end class Hour < AR belongs_to :task end Que opinan ustedes? -- Luis Lavena Multimedia systems - Leaders are made, they are not born. They are made by hard effort, which is the price which all of us must pay to achieve any goal that is worthwhile. Vince Lombardi _______________________________________________ ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
-- Saludos, Lautaro Bonetto. http://lautaro-bonetto.neurona.com
<<attachment: models.png>>
_______________________________________________ ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
