Hola expertos,
tengo un método de modelo que realiza un calculo que lo guarda en la bd,
el
metodo es el siguiente
def pre_rank
rank = 1
tag_count = self.tags.count
self.tags.each do |t|
rank = t.taggings_counttag_count
end
puts rank
self.rank_cache = (rank**(1.0/tag_count)).round(3)
self.save!
end
mi problema es que a veces la variable rank se dispara y al calcular
(rank**(1.0/tag_count)).round(3), obtengo un warning: Bignum out of
Float
range=> Infinity
la idea es que rank sea un valor que se multiplique por si mismo en cada
iteracion de cada tag * sus taggings(ocurrencias de ese tag) * la
cantidad
de los tags asociados al item, y aveces este valor crece mucho y al
calcular
la potencia de , me salta el error,
como puedo controlar esto?
saludos cordiales
Atte.
Miguel Michelson Martinez