ソースはここにあなたが何ができるかだとプラグインの例を取る:
class Post
include Mongoid::Document
include Mongo::Voteable
extend ActiveModel::Callbacks
define_model_callbacks :vote
# set points for each vote
voteable self, :up => +1, :down => -1
def vote(options, value = nil)
_run_vote_callbacks do
super(options, value)
end
end
end
私は、これは正しくか仕事に行くが、最悪の場合、あなたにある場合はわからないので、私はこのコードを実行しませんでしたalias_method_chainを使用して投票方法の別名を指定するか、ソースをコピーして_run_vote_callbacksブロック内にコピーして貼り付けてください(実際は本当に醜いですが、それは解決策です)。
EDIT
上記のコードは動作しない場合、これはまた、alias_method_chainを使用して行うことができます
class Post
include Mongoid::Document
include Mongo::Voteable
extend ActiveModel::Callbacks
define_model_callbacks :vote
# set points for each vote
voteable self, :up => +1, :down => -1
alias_method_chain :vote, :callback
def vote_with_callback(options, value = nil)
_run_vote_callbacks do
vote_without_callbacks(options, value)
end
end
end