0

redmine的model Project有方法

  def close
    self_and_descendants.status(STATUS_ACTIVE).update_all :status => STATUS_CLOSED
  end

在此方法中更新update_all意味着当项目关闭时after_save不调用回调。

当项目关闭时,您如何(通过模型)捕获?

4

2 回答 2

0

如果您不想更改原始方法,您可以添加一个插件来为您修补关闭功能(使用 Rustik 上面提出的代码:https ://stackoverflow.com/a/48684242/5961910 )。

于 2018-02-09T12:52:17.140 回答
0

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) }
于 2018-02-08T11:18:53.283 回答