Ruby on RailsのMathクラスにメソッドを動的に追加するにはどうすればよいですか?
-
05-07-2019 - |
質問
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
所属していません StackOverflow