我使用ActiveSupport :: Concern來幹掉我的AR類中包含的一些代碼。我有一個模塊,用於計算下威爾遜結合在數據:ActiveSupport ::關注和類方法
module CalculateWilsonBound
extend ActiveSupport::Concern
included do
class_attribute :wilson_ratings
class_attribute :wilson_positive_ratings
end
def calculate_wilson_lower_bound
number_of_ratings = self.class.wilson_ratings.call(self)
...
end
end
後我已經包括它到物體上,我想提供兩級電平的方法,其定義塊這將返回各自的(wilson_ratings,wilson_positive_ratings)計數。
從視圖中的AR對象點:
class Influence < ActiveRecord::Base
include CalculateWilsonBound
wilson_ratings { |model| model.votes }
wilson_positive_ratings { |model| model.positive_votes }
這不會造成任何運行時錯誤,但是當我訪問類屬性:
number_of_ratings = self.class.wilson_ratings.call(self)
這是零。
首先,我組織的代碼是有道理的,secondaly,爲什麼是類屬性爲零?