0

我正在为 redmine 制作一个插件,我不想修改它的代码。

Redmine 有一个名为的类Member,其中有很多Role.

更新时Member,角色被修改。我想进行回调after_update,或者around_update我无法role_ids在更新之前获得。

角色 ID 正在使用 进行修改member.role_ids =

我想我可以尝试覆盖其中的方法role_ids=Member但我不确定当 Redmine 的更新可用时会产生什么影响。

RoR 3.2.11 Redmine 2.2.1

4

1 回答 1

0

如果您有权访问Member该类的实例,则可以在运行时扩展它并覆盖 role_ids 方法:

module ExtendedMember
  def role_ids=(value)
    # do something (you can even call super)
  end
end

@member = Member.new
@member.extend ExtendedMember
@member.role_ids = [1,2,3] # will call the role_ids method of ExtendedMember

# ...

请注意,您的方法仅适用于Member该类的这一实例!

于 2013-01-28T21:13:08.117 回答