質問への更新
これは、いくつかの調査と調査結果に基づいて私が行ったことです。
ステップ 1 - Rails 3 プロジェクトにこのモジュールがあり、lib フォルダーに配置します。
# lib/enumerable.rb
module Enumerable
def sum
return self.inject(0){|acc,i|acc +i}
end
def average
return self.sum/self.length.to_f
end
def sample_variance
avg=self.average
sum=self.inject(0){|acc,i|acc +(i-avg)**2}
return(1/self.length.to_f*sum)
end
def standard_deviation
return Math.sqrt(self.sample_variance)
end
end
ステップ 2 - このブログ記事によると、Rails 3 では lib フォルダーが自動的に読み込まれません。このモジュールをロードするには、に移動して次のようにconfig / application.rb
入力する必要があります。
config.autoload_paths += %W(#{config.root}/lib)
ステップ 3 - 次に、あなたのモデルでは、これを入力してモジュールを取得します。
class MyModel < ActiveRecord::Base
include Enumerable
end
ステップ 4 - その後、Rails サーバーを再起動してこれを試してみると、true であると予想されるときに false になります。
MyModel.respond_to?('sample_variance')
# false, when it should be true
私は何を間違っていますか?私は真実になってはいけないのですか?