プラグイン開発記 - routes の問題

Redmine インフォメーション プラグイン用語集プラグインroutes の問題が発生していた。



これは Redmine 最新安定版(1.3.0) では発生しないが、 開発版で発生する問題だった。
結局、解決方法がわからなくて、 @haru_iida さんに教えてもらったのだが、 routes を設定していないといけないらしい。
今後の Redmine のバージョンから routes の設定が必須になるかも知れない。

Rails では link_to のメソッドなどで、以下のようなアクションを指定した場合、
link_to(表示文字列, {:control=>:foos, :action=> :show, :id => "demo", :foo_id => 1})
control, action, id の値だけアドレスに使われて、残りのハッシュの値は GET の引数として渡される。
アドレス: http://127.0.0.1/foos/show/demo
params = {:id => "demo", :foo_id => "1"}
これは config/routes.rb というファイルでどのようなアドレスになるか変更できる。
http://gihyo.jp/dev/serial/01/ruby/0038


Rails では、 find_project という id をプロジェクトの識別名としてプロジェクトを探す関数が予め用意されているし、 id をプロジェクトの識別名に使うという方針みたい。

Redmine では、ソースを見ていると、 id を使わずに project_id というキーで、識別名を指定して、 routes を使ってアドレスが次のようにしている。
http://サイトアドレス/projects/プロジェクト/コントロール/アクション


用語集プラグインでは参考にした ezFAQ がそうしていたからという理由が一番大きいけど、 routes 設定するのも面倒なので、 Rails のように id をプロジェクト識別名に設定する方法でやっていた。
けど、 routes を設定するのが必須なら project_id をキーにしておくように変更した方がいいかも知れない。
ただ、そうすると前と URL が変わってしまうので、それもどうかなとも思う。

Redmine インフォメーション プラグイン の場合は、もともとプロジェクトに属してなくて、 id を情報のカテゴリとして使っていたので、 とくに問題はなさそう。


もう一つ問題は 『プラグイン開発ガイド』
こちらも簡単のために、プロジェクト識別名を id で設定していた。
今後、 routes 必須になる可能性を考えると、 project_id にして、 routes の説明を追加した方がいい気がする。
shinagwa.redmine の勉強会 まで時間がないけど、がんばってなおしてみようかな。

関連記事
スポンサーサイト



Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
31位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
5位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

08月 | 2023年09月 | 10月
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。