ビデオを保存し、インデックスを作成し、更新するこの API があります。インデックス作成の時間を短縮するために、変更されたビデオまたは新しいビデオのみをインデックス化するための検証を追加することにしました。それがそうであった前に:
class Video < ActiveRecord::Base
after_save :index_me
def index_me
Resque.enqueue(IndexVideo, self.id)
end
end
私が行った変更は次のとおりです。
class Video < ActiveRecord::Base
before_save :check_new_record
after_save :index_me
def check_new_record
self.is_new = self.new_record?
end
def index_me
if self.changed? || self.is_new
Resque.enqueue(IndexVideo, self.id)
end
end
end
何も変更されていなくても、すべてのビデオがインデックスに登録されることを除いて、変更がなければすべて問題ありません。しかし、私の変更により、ビデオがデータベースに保存しようとするとロールバックします。何かご意見は?