Ese fragmento de codigo me supera. Llegué a entenderlo, pero se me murieron
algunas neuronas en la batalla.
Abría forma de hacer merge dentro de una misma opción?
Ej
:conditions => {:fecha => DateTime.now}
más
:conditions => {:usuario_id => current_usuario}
más
:conditions => {:tarea_id => @tarea}
igual
:conditions => {:fecha => DateTime.now, :usuario_id => current_usuario,
:tarea_id => @tarea}
Pido mucho no?
Saludos.
On 5/18/07, Damian Janowski <[EMAIL PROTECTED]> wrote:
On 5/18/07, Lautaro Bonetto <[EMAIL PROTECTED]> wrote:
> Listoo... !!
> Mil gracias. Ese MERGE no lo conocía y era lo que me faltaba para
solucionar
> el problema. Gracias de nuevo.
;)
Ahora que lo pienso, habría que hacer algo más metaprogramático que quede
así:
class Hora < ...
finder_method :activas, :all, :conditions => {:fecha => DateTime.now}
end
(tendríamos el problema de que ese DateTime.now sería evaluado en el
momento de definición de la clase, pero lo podemos solucionar)
Mmm...
class ActiveRecord::Base
class << self
def finder_method(method_id, *args)
self.class.class_eval <<-EOF
def #{method_id}(options = {})
find(#{args.first.inspect}, #{args.last.inspect}.merge(options))
end
EOF
end
end
end
Además acá lo que hice es dar vuelta el orden del merge. Agarro el
valor por default y a eso le hago el merge con el valor del argumento
(si no, el valor por default te pisa el tuyo).
Amo la metaprogramación :)
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
--
Saludos, Lautaro Bonetto.
http://lautaro-bonetto.neurona.com
_______________________________________________
ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar