スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

用語集プラグインの Redmine 1.4 対応

以前書いた Redmine 1.4 への対応に必要な改造を 用語集プラグインに行った。

とりあえず、動作するようになった。
ただ、ぜいたくをいうと URL の表示が次のような表示になって、あまりかっこよくない。

http://127.0.0.1:3000/glossary/show?id=2&project_id=demo

Redmine 1.4.0 のロードマップ を見てみると よりもさらにバグチケットが増えてて 5 件になっている。リリースはまだ当分先になりそう

URL の表示を直すには routes.rb の設定をもっとよく調べて、ちゃんと設定しておく必要がある。
1.4.0 のリリースは先のようなので、ちょっと腰を据えて routes の修正を行うつもり。 動作自体には問題なくなったので、修正前に Redmine 1.4.0 がリリースされそうになったら、 用語集プラグインも今の状態で出そうと思う。

URL の修正はまだだけど、とりあえず動作させるだけでも、結構大変だった。
以下はその時の修正内容。

routes.rb ファイルの追加

まずは、 routes.rb の追加。 これは前に対応方法で書いたとおりのものを作成。
ActionController::Routing::Routes.draw do |map|
  map.connect 'glossary/:action', :controller => 'glossary'
  map.connect 'glossary_styles/:action', :controller => 'glossary_styles'
  map.connect 'term_categories/:action', :controller => 'term_categories'
end

project_id を使うように変更

前にも書いたが、データ要素の ID とプロジェクト ID の受け渡しに使うパラメーターのキー名が、標準的な Rails アプリと Redmine で違う。
対象 プロジェクト ID データ要素の ID
標準的な Rails アプリ id xxxx_id (term_id)
Redmine project_id id
routes.rb を変えただけだとちゃんと動作しないアクションがあった。
名前だけの問題だが、 Rails には 設計より規約 の方針があり、 名前が違うと予想外な影響があったりする。 今までは標準的な Rails アプリの ID の使い方をしていたが、これを機に Redmine にあわせた使い方に変更した。

form_tag でパラメーターが渡せない

一覧表示でのフィルターで使っている form_tag で挙動がおかしかった。
form_tag({:controller => 'glossary_styles', :action => 'search', :project_id => @project},
	    {:method => 'get', :id=>'search_form'}
	    ) do
この書き方で、 params[:project_id] というように、コントローラーにパラメーターがわたるはずだが、 なぜかパラメーターがわたらない。
上手くいくはずなのに、ちゃんと動作せず、ここが一番ハマった。 おそらく、 routes の設定の問題あたりが、からんでいるのではないかと思うけど、よくわからない。

他のフォームの場合は form_for を使っていた。こちらは同じような書き方で上手くいく。 フィルターのパラメーターを入れるモデルは作っていないので、 form_for を使うわけにもいかない。

とりあえず、動作させようってことで、非常手段。 フォームの隠しフィールドを使ってプロジェクト ID を渡した。
 hidden_field_tag 'project_id', @project.id.to_s 

Redmine の本体機能へのリンク

Redmine の本体機能へのリンクでもルートのエラーが発生するものがあった。

用語集プラグイン ではユーザー情報へのリンクを使っていたが、いままでの形式だとルートエラーになってしまった。
link_to(h(author), :controller => 'account', :action => 'show', :id => author)
これは Redmine で用意されている関数を使ってリンクを作るように変更した。
link_to_user(author)

エクスポート用リンク

用語の一覧を CSV ファイルにエクスポートする機能がある。 このエクスポートするときのリンクの記述は、以前はこんな感じ。
  <% other_formats_links do |f| %>
    <%= f.link_to 'CSV' %>
  <% end %>
これだと上手くいかなかった。 Redmine のチケット一覧で同じような機能があるので、 それを参考に修正した。
  <% other_formats_links do |f| %>
    <%= f.link_to 'CSV', :url => params %>
  <% end %>

配列クラスへの追加の挙動の変化

Redmine ではなく Ruby の 1.8 から 1.9 への変更による挙動の違いが原因で修正が必要だったものもあった。

1.8 以前は配列に <<(push) を使って配列を追加した場合には、 配列が展開されて結合される。
ary = [1]
ary << [2, 3]
p ary      # [1, 2, 3]
しかし、 1.9 からは配列をそのまま追加するようになっていた。
ary = [1]
ary << [2, 3]
p ary      # [1, [2, 3]]
この部分の 用語集プラグイン の修正はすぐ出来た。

しかし、 1.9 からこんな変更が加わっていたのは知らなかった。 << を使った配列の結合は便利だったので、 自分が今まで書いた Ruby スクリプトでも多用している。
そのまま追加する方が直感的なのはわかるけど、今まで書いたコードが心配。

関連記事
スポンサーサイト
Prev.    Category    Next 

trackback

まとめteみた.【用語集プラグインの Redmine 1.4 対応】

以前書いたRedmine1.4への対応に必要な改造を用語集プラグインに行った。Redmine1.4.0もうすぐリリースが動作しない可能性あり|プログラマーズ雑記帳とりあえず、動作するようになった。た

新規トラックバック


この記事にトラックバックする(FC2ブログユーザー)

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

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

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

07月 | 2017年08月 | 09月
- - 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 31 - -


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

yohshiy

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

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

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。