1

アプリでの投票に gem activerecord-reputation-system を使用しており、その上に実績システムを実装しています。

私の成果の 1 つは、誰かが何かに 10 回投票したときです。モデルまたはオブザーバーで after_create コールバックを使用してコードをトリガーし、実績を追加する必要があるかどうかを確認しようとしています。

問題は、 after_create(evaluation) が機能しないように見えることです。誰かが何かに投票した後、その人に実績を与えるべきかどうかを確認する必要があります。このコードを単一の after create メソッドに入れて、アプリ全体に分散しないようにしたいと考えています。

こんな感じで評価モデルを作ってみました

 class Evaluation < ActiveRecord::Base 
   after_create :do_something
 end

 class EvaluationObserver < ActiveRecord::Observer
   def after_create(evaluation)
     :do_something
   end
 end

モデルをモデルフォルダーに入れました。libまたはvenderフォルダーにgemをローカルにインストールしようとしているところまで来たので、その方法でフックできます。

Ruby 1.9.3でRails 3を使用しています。オブザーバーが 4 で非推奨になったことは知っていますが、今のところそれらに固執しています。

これどうやってするの?

ありがとう!

4

0 に答える 0