|
|
|
@ -10,7 +10,7 @@ module Redmine
|
|
|
|
|
def acts_as_watchable(options = {})
|
|
|
|
|
return if self.included_modules.include?(Redmine::Acts::Watchable::InstanceMethods)
|
|
|
|
|
class_eval do
|
|
|
|
|
has_many :watchers, :dependent => :delete_all
|
|
|
|
|
has_many :watchers, :as => :watchable, :dependent => :delete_all
|
|
|
|
|
has_many :watcher_users, :through => :watchers, :source => :user, :validate => false
|
|
|
|
|
|
|
|
|
|
scope :watched_by, lambda { |user_id|
|
|
|
|
@ -51,7 +51,7 @@ module Redmine
|
|
|
|
|
#通过model层删除以触发before_destroy事件 -by zjc
|
|
|
|
|
watchers = Watcher.find_by_sql "select * from `watchers` where watchable_type = 'Principal' AND watchable_id = #{self.id} AND user_id = #{user.id}"
|
|
|
|
|
watchers.each do |watcher|
|
|
|
|
|
watcher.destroy
|
|
|
|
|
watcher.destroy
|
|
|
|
|
end
|
|
|
|
|
#Watcher.delete_all "watchable_type = 'Principal' AND watchable_id = #{self.id} AND user_id = #{user.id}"
|
|
|
|
|
else
|
|
|
|
|