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

Responder a