プラグインから require するときの注意1

ezfaq_plugin と redmine_xapian plugin の両方を入れたときに Redmine起動時にエラーになることがありました。
原因は両方のプラグインに lib/attachment_patch.rb という同名のファイルがあり
ezfaq_plugin の init.rb での

require 'attachment_patch'

のところで ezfaq_plugin側ではなく redmine_xapian側の attachment_patch.rb が読み込まれてしまったためでした。*1

プラグインの下のファイルを読み込みたいときは

require File.dirname(__FILE__) + '/lib/attachment_patch'

のように「File.dirname(__FILE__) + 相対パス」を使うと確実です。

*1:プラグインはアルファベット順に読み込まれるのになぜ順番が後の redmine_xapian側から読み込まれるのかというとライブラリの検索パスはスタック状に積まれるから(だったと思います)。