編集注:これは、 Railscast#364でカバーされているactiverecord-reputation-system gemに関する質問です。
Vip
とクラスのユーザーがお気に入りのオブジェクトPeon
に投票できるアプリケーションがあります。とIdea
を無事に集めることができました。2 つの投票タイプを に集約するにはどうすればよいですか? 以下のコードがありますが、total_votes が期待どおりに蓄積されません。vip_votes
peon_votes
total_votes
アイデア.rb
has_reputation :vip_votes,
:source => :vip,
:aggregated_by => :sum
has_reputation :peon_votes,
:source => :peon,
:aggregated_by => :sum
has_reputation :total_votes,
:source => [{ :reputation => :vip_votes },
{ :reputation => :peon_votes, :weight => 0.8 }],
:aggregated_by => :sum
idea_controller.rb
def vip_vote
@design = Design.find(params[:id])
@design.add_evaluation(:vip_votes, 1, current_vip)
end
def peon_vote
@design = Design.find(params[:id])
@design.add_evaluation(:peon_votes, 1, current_peon)
end
ルート.rb
resources :ideas do
member { post :vip_vote }
member { post :peon_vote }
end
ご意見ありがとうございます!