Ruby on rails 如何在RubyonRails中向Math类动态添加方法?

Ruby on rails 如何在RubyonRails中向Math类动态添加方法?,ruby-on-rails,ruby,metaprogramming,introspection,Ruby On Rails,Ruby,Metaprogramming,Introspection,我正在尝试向Ruby on Rails中的Math类添加以下方法: 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 然后,我将以下内容

我正在尝试向Ruby on Rails中的Math类添加以下方法:

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
然后,我将以下内容添加到我的environment.rb中:

require 'lib/math'
打开Rails控制台时,出现以下错误:“./lib/math.rb:2:TypeError math不是类”

看起来我忽略了一些非常简单的事情

有什么想法吗


提前感谢您的帮助。

数学是一个模块,只需将类重命名为模块。

数学是一个模块,只需将类重命名为模块。

您可以将包含此代码的文件放在配置/初始值设定项中,它将自动包括在内。~仅供参考。

您可以将包含此代码的文件放在配置/初始值设定项中,它将自动包括在内。~仅供参考。

如果您使用
实例评估
,您不必担心是使用
还是
模块

Math.instance_eval do
  def round_with_precision(number, precision)
    scalar = 10.0 ** precision
    (number * scalar).round / scalar
  end
end

如果使用
instance\u eval
,则不必担心是使用
class
还是
module

Math.instance_eval do
  def round_with_precision(number, precision)
    scalar = 10.0 ** precision
    (number * scalar).round / scalar
  end
end