Pregunta

Estoy tratando de agregar el siguiente método a la clase de Matemáticas en Ruby on Rails:

class Math
  def self.round_with_precision(number, precision)
    scalar = 10.0 ** precision
    number = number * scalar
    number = number.round
    number = number / scalar
    return number;
  end
end

Luego agregué lo siguiente a mi environment.rb:

require 'lib/math'

Cuando abro la consola de Rails, aparece el siguiente error: './lib/math.rb:2:TypeError Math no es una clase'

Parece que estoy pasando por alto algo muy simple.

¿Algún pensamiento?

Gracias de antemano por tu ayuda.

¿Fue útil?

Solución

Math es un módulo, solo cambia el nombre de clase a módulo.

Otros consejos

Puede colocar el archivo que contiene este código en config / initializers y se incluirá automáticamente. ~ Sólo un FYI.

Si usa instance_eval , no tiene que preocuparse de si usar class o module :

Math.instance_eval do
  def round_with_precision(number, precision)
    scalar = 10.0 ** precision
    (number * scalar).round / scalar
  end
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top