Redmineにプラグインで列挙項目を追加する
たったこれだけのコードで列挙項目が使用可能になってしまう。
すばらしい。
Redmineのバージョンは1.1.2。
/plugin_root/app/model/new_enum.rb
class NewEnum < Enumeration #アンロード可能にする #これがないとdevelopmentモードで2回目のロード時に"superclass mismatch"と言われておっこちる unloadable has_many :hoges, :foreign_key => 'hoge_column' OptionName = :enumeration_new_enum def option_name OptionName end #この列挙項目インスタンスを使用しているレコードがいくつあるかを返す #これが1以上を返す場合はこの列挙項目インスタンスの削除時に #他の列挙項目インスタンスへの割り当てをするための画面に遷移する #最終的にこのメソッドが0を返さないとこの列挙項目インスタンスの削除はお断りされる def objects_count hoges.count end #この列挙項目インスタンスを別の列挙項目インスタンスに割り当てる def transfer_relations(to) hoges.update_all("hoge_column = #{to.id}") end end
/plugin_root/init.rb
require 'dispatcher' Dispatcher.to_prepare :pluin_name do require_dependency 'new_enum' end
/plugin_root/config/locales/ja.yml
ja: enumeration_new_enum: 列挙項目名