1

我正在尝试将以下方法添加到 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 is not a class'

似乎我忽略了一些非常简单的事情。

有什么想法吗?

在此先感谢您的帮助。

4

3 回答 3

9

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

于 2009-01-07T21:12:50.400 回答
2

您可以将包含此代码的文件放在 config/initializers 中,它将自动包含在内。~ 仅供参考。

于 2009-01-07T21:23:17.417 回答
0

如果使用instance_eval,则不必担心是否使用classmodule

Math.instance_eval do
  def round_with_precision(number, precision)
    scalar = 10.0 ** precision
    (number * scalar).round / scalar
  end
end
于 2009-01-09T05:32:33.963 回答