ちょっとしたプロジェクト参照をしたのですQuick Start
が、評判値にアクセスしたらエラーが発生しました
answer.reputation_for :avg_rating
NoMethodError: undefined method `to_sym' for nil:NilClass
from /Users/Juo/.rvm/gems/ruby-2.0.0-p195/bundler/gems/activerecord-reputation-system-01197ad78cac/lib/reputation_system/models/reputation.rb:189:in `get_target_type_for_sti'
from /Users/Juo/.rvm/gems/ruby-2.0.0-p195/bundler/gems/activerecord-reputation-system-01197ad78cac/lib/reputation_system/models/reputation.rb:198:in `set_target_type_for_sti'
from /Users/Juo/.rvm/gems/ruby-2.0.0-p195/gems/activesupport-4.0.0/lib/active_support/callbacks.rb:377:in `_run__3152603553061474011__validation__callbacks'`
誰か助けて?
ユーザーのカルマが質問スキルと回答スキルの合計である Q&A サイトで、ユーザーのカルマを追跡したいとします。質問スキルはユーザーの質問に対する投票の合計であり、回答スキルはユーザーの回答の平均評価の合計です。これは次のように定義できます。
class User < ActiveRecord::Base
has_many :answers
has_many :questions
has_reputation :karma,
:source => [
{ :reputation => :questioning_skill, :weight => 0.8 },
{ :reputation => :answering_skill }]
has_reputation :questioning_skill,
:source => { :reputation => :votes, :of => :questions }
has_reputation :answering_skill,
:source => { :reputation => :avg_rating, :of => :answers }
end
class Answer < ActiveRecord::Base
belongs_to :user, :as => :author
has_reputation :avg_rating,
:source => :user,
:aggregated_by => :average,
:source_of => [{ :reputation => :answering_skill, :of => :author }]
end
class Question < ActiveRecord::Base
belongs_to :user
has_reputation :votes,
:source => :user
end