trigger.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
源码类别:

Ajax

开发平台:

Others

  1. class Trigger < ActiveRecord::Base
  2.   belongs_to :pending_item, :polymorphic => true
  3.   class << self
  4.     def post_action(due_at, item, method='came_due')
  5.       create!(:due_at => due_at, :pending_item => item,
  6.               :trigger_method => method)
  7.       fire
  8.     end
  9.     def fire
  10.       destroy_all ['due_at <= ?', Time.now]
  11.       true
  12.     end
  13.     def remove(pending_item, conditions = { })
  14.       return if pending_item.new_record?
  15.       conditions_string =
  16.         conditions.keys.collect{ |k| "(#{k} = :#{k})"}.join(' AND ')
  17.       with_scope(:find => { :conditions => [conditions_string, conditions]}) do
  18.         delete_all(["pending_item_id = ? AND pending_item_type = ?",
  19.                     pending_item.id, pending_item.class.to_s])
  20.       end
  21.     end
  22.   end
  23.   def before_destroy
  24.     returning true do
  25.       pending_item.send(trigger_method) if pending_item
  26.     end
  27.   end
  28. end