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 はクラスではありません」というエラーが表示されます。

非常に単純なものを見落としているようです。

何かご意見は?

よろしくお願いします。

4

3 に答える 3

9

Math はモジュールです。クラスの名前をモジュールに変更するだけです。

于 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 に答える