¿Cómo puedo agregar dinámicamente un método a la clase de Matemáticas en Ruby on Rails?
-
05-07-2019 - |
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.
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