やりたいこと

Redmineのプラグインを作成しています.
RedmineのApplicationHelperにはlink_to_projectというメソッドがあり、これを書き換えたいのですが、うまくいきません.

環境

  • Redmine 3.0.1
  • Rails 4.2.1
  • Ruby 2.1.5p273

やったこと

http://www.redmine.org/projects/redmine/wiki/Plugin_Internalsを参考に

lib/action_helper_patch.rb

require 'application_helper'

module ApplicationHelperPatch
  def self.included(base)
    base.send(:include, InstanceMethods)

    base.class_eval do
      unloadable
      alias_method_chain :link_to_project, :project_owner
    end
  end


  module InstanceMethods
    def say_hello
      'say Hello'
    end
    def link_to_project_with_project_owner(project, options={}, html_options = nil)
      if project.archived?
        h(project.name)
      else
        link_to 'hello',
          project_url(project, {:only_path => true}.merge(options)),
          html_options
      end
    end
  end

end


ApplicationHelper.send(:include, ApplicationHelperPatch)

init.rbに次の1行を加えました.

require_dependency 'application_helper_patch'

試したこと

自作のプラグインのViewで次のヘルパーを試してみましたが、link_to_projectだけ、思ったとおりに'hello'と表示されず、もとのプロジェクト名が表示されてしまいます.(もちろんproject.archived?はfalseなものもです.)

  • say_hello 'say_hello'と表示されました.
  • link_to_project_with_project_owner 'hello'というリンクが表示されました.
  • link_to_project プロジェクト名が表示されます.

また、Redmineで使っているlink_to_projectもそのままで書き換えられていません.

質問

alias_method_chainの使い方をどこかで間違えているのでしょうか?
また、もとのlink_to_projctを書き換えるにはどうしたらいいでしょうか?