Redmineプラグイン開発のルートの作成について
【2014/08/21 追記】
Redmineのバージョンは2.3.4
こんにちは。今日も今日とてインターンの下準備です。
ようやく自分でRedmineのプラグイン開発をしはじめたのですが、
単純にプラグインのひな形を作っただけではアクセス出来ないし、
メニューに追加して表示できないことに気づきました。
要するにURLを設定するためにroute.rbというファイルを作成しないといけないらしいです。
で、ここで詰まってたんですが、これってプラグインごとにいろいろ考えないといけないんですよ。
先述したリンクのページで作成しているプラグインは、プロジェクトのメニューに追加する形で
使用するプラグインであるため、URLは以下のようになります。
http://127.0.0.1:3000/projects/project_name/foos
プロジェクトのメニューに追加しているのでinit.rbには、
menu :project_menu, :standard, { :controller => 'foos', :action => 'index'}, :param => :project_id
こんな一文があるはずです。この部分の一番最初の引数が肝心な所。
この引数が何なのかによってconfig/route.rbの中身も書き換える必要があります。
引数が :project_menu だった場合、先述したようなURLになるため、
route.rbは次のようになります。
Rails.application.routes.draw do resources :projects do resources :foos end end
projectsの後にコントローラーの名前であるfoosが入っています。
ほかの引数である :application_menu, :top_menu, :account_menuであった場合は、
URLが次のようになるはずです。
というわけで、route.rbは……
Rails.application.routes.draw do resources :foos end
こう書けばOK。
あとはコマンド打ってあげればルートを生成してくれました。
$ rake routes
これで500が出ないでホームにも追加したメニューが表示されるはずです。