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