0

Redmine 用のプラグインを作成していますが、そのコードを変更したくありません。

Redmine には、Member多くの を持つという名前のクラスがありますRole

Member更新されると、役割が変更されます。コールバックを行いたいのですafter_updateが、更新前around_updateに取得できません。role_ids

を使用してロール ID を変更してmember.role_ids =います。

role_ids=メソッドのオーバーライドを試みることはできると思いますが、MemberRedmine の更新が利用可能になったときにそれがどのような影響を与えるかはわかりません。

RoR 3.2.11 レッドマイン 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メソッドは、クラスのこの 1 つのインスタンスに対してのみ使用できることに注意してください。

于 2013-01-28T21:13:08.117 に答える