redmine的model Project有方法
def close
self_and_descendants.status(STATUS_ACTIVE).update_all :status => STATUS_CLOSED
end
在此方法中更新update_all
意味着当项目关闭时after_save
不调用回调。
当项目关闭时,您如何(通过模型)捕获?
redmine的model Project有方法
def close
self_and_descendants.status(STATUS_ACTIVE).update_all :status => STATUS_CLOSED
end
在此方法中更新update_all
意味着当项目关闭时after_save
不调用回调。
当项目关闭时,您如何(通过模型)捕获?
如果您不想更改原始方法,您可以添加一个插件来为您修补关闭功能(使用 Rustik 上面提出的代码:https ://stackoverflow.com/a/48684242/5961910 )。
Rails 5 允许使用回调和验证更新记录:
self_and_descendants.status(STATUS_ACTIVE).update(status: STATUS_CLOSED)
对于 Rails 4 及以下版本,您可以通过批量更新记录来触发回调:
self_and_descendants.status(STATUS_ACTIVE).find_each { |record| record.update_attributes(status: STATUS_CLOSED) }