Ruby on RailsのMathクラスにメソッドを動的に追加するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/422108

質問

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はモジュールです。クラスの名前をmoduleに変更してください。

他のヒント

このコードを含むファイルをconfig / initializersに配置すると、自動的に含まれます。 〜参考までに。

instance_eval を使用する場合、 class module のどちらを使用するか心配する必要はありません:

Math.instance_eval do
  def round_with_precision(number, precision)
    scalar = 10.0 ** precision
    (number * scalar).round / scalar
  end
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top