2

Bitnami Stack で Redmine 2.0.1 を使用してTime Tracker プラグインを実行しようとしています。Redmine 2.* とは互換性がないことがわかりましたが、私を止めることはできませんでした。そこで、このプラグインを に配置し../redmine/htdocs/plugins/redmine_time_tracker、 で移行しrake db:migrate_plugins RAILS_ENV=production、ルートを Rails 3 スタイルに変更し、redmine_time_tracker/config/routes.rbすべてのファイルのredmine_time_tracker/app/views名前を *.rhtml から *.html.erb に変更しました。別の Redmine を再起動した後、私は壁に寄りかかって休みました。Redmine の production.log に次のエラー メッセージがあります。

Started GET "/redmine" for 127.0.0.1 at Tue Jun 12 22:36:05 +0400 2012
Processing by WelcomeController#index as HTML
  Rendered welcome/index.html.erb within layouts/base (9.5ms)
  Rendered plugins/redmine_time_tracker/app/views/time_trackers/_embed_menu.html.erb (203.0ms)
  Rendered plugins/redmine_time_tracker/app/views/time_trackers/_update_menu.html.erb (203.5ms)
Completed 500 Internal Server Error in 252ms

ActionView::Template::Error (undefined method `time_tracker_for' for #<#<Class:0x7f5efb458e48>:0x7f5efb322290>):
    1: <% time_tracker = time_tracker_for(User.current) %>
    2: <% if !time_tracker.nil? %>
    3:     <% if time_tracker.paused %>
    4:         <%# A time tracker is in pause, display the tracked issue, the time spent and the resume/stop actions %>
  lib/redmine/hook.rb:110:in `send'
  lib/redmine/hook.rb:110:in `view_layouts_base_body_bottom'
  lib/redmine/hook.rb:61:in `send'
  lib/redmine/hook.rb:61:in `call_hook'
  lib/redmine/hook.rb:61:in `each'
  lib/redmine/hook.rb:61:in `call_hook'
  lib/redmine/hook.rb:58:in `tap'
  lib/redmine/hook.rb:58:in `call_hook'
  lib/redmine/hook.rb:151:in `call_hook'
  app/views/layouts/base.html.erb:80:in `_app_views_layouts_base_html_erb___1317325009_70022959536540'

time_tracker_forhelper は に配置されredmine_time_tracker/app/helpers/application_helper.rb、 の「プラグイン コンストラクター」に従って自動的に読み込まれるはずだと思いますredmine/htdocs/lib/redmine/plugin.rb

私は Ruby と Rails に慣れていないので、この魔法と戦い続けるにはいくつかの指示が必要です。

4

2 に答える 2

3

最後に解決しました。

ここで見つけました:http://www.redmine.org/boards/3/topics/31445 答え(redmineのプラグインとrails3のエンジンについて見つけたほとんどすべてを読んだ後)

デフォルトのヘルパーとコントローラーの拡張

2.0.0 より前の Redmine バージョンでは、すべてのプラグインは vendor/plugins フォルダーにあり、そのため Rails は app/controllers、app/helpers、app/models などのフォルダー内のすべてのファイルを自動的にロードして追加しました。

このアプローチにより、適切なファイルとメソッドをプラグインのフォルダーに追加するだけで、既存のコントローラーとヘルパーを拡張することができました。たとえば、メソッド get_list_of_projects を SettingsHelper に追加する必要がある場合、プラグインの app/helpers フォルダーに settings_helper.rb という名前のファイルを作成するだけです。Redmine 2.x はプラグインをアプリケーションのルートの plugins フォルダーに移動したため、上記の方法はまったく機能しません。そのため、機能させるには、上記のパッチ適用とオーバーライドのメカニズムを使用する必要があります。

リンクでは、前述のパッチ適用メカニズムの作成方法が説明されています。

redmine の time_tracker プラグインにそのパッチを実装し、動作しています。コードは github フォークにあり ます https://github.com/martinllanos/redmine_time_tracker

お役に立てば幸いです。ご質問はこちらまで:)

于 2012-06-27T14:25:53.140 に答える
1

Redmine 2で使用するタイムトラッカープラグインを移行するという、まったく同じ問題があります。

私はウェブで検索してきましたが、まだ修正できませんでしたが、これを解決する方法だと思われる有用な情報を見つけました.

最初の部分は、redmine プラグインは基本的に Rails エンジンです http://www.redmine.org/boards/3/topics/13419

だから私はそれについてグーグルを始めました。

プラグインの ApplicationHelper を使用して、アプリケーションから ApplicationHelper をオーバーライドする問題について話している ruby​​-forum の 2 つの投稿を見つけました。彼らはこれを解決するためのいくつかの方法を提供していますが、まだテストしていません (コードを理解しようとしています)。

ここに投稿があります。

http://www.ruby-forum.com/topic/211017

http://www.ruby-forum.com/topic/1455297

そこから具体的/明確な答えが得られれば、それは素晴らしいことです:)

私の側からのニュースはすべて掲載されます。

于 2012-06-21T20:31:52.400 に答える