我正在尝试在Bitnami Stack上使用Redmine 2.0.1运行Time Tracker plugin。
我发现它与Redmine 2不相容*但它无法阻止我。
因此,我将此插件放在../redmine/htdocs/plugins/redmine_time_tracker
中,使用rake db:migrate_plugins RAILS_ENV=production
迁移它,将路由更改为redmine_time_tracker/config/routes.rb
中的Rails 3样式,并将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_for
帮助器放在redmine_time_tracker/app/helpers/application_helper.rb
中,我认为它应该根据redmine/htdocs/lib/redmine/plugin.rb
中的“插件构造函数”自动加载。
我是Ruby和Rails的新手,需要一些指导来继续对抗这种魔力。
答案 0 :(得分:3)
终于解决了。
我在这里找到:http://www.redmine.org/boards/3/topics/31445 答案(在阅读了我发现的关于redmine中的插件和rails3中的引擎的几乎所有内容之后)
扩展默认助手和控制器
在2.0.0之前的Redmine版本中,所有插件都在供应商/插件中 文件夹,因为Rails自动加载并添加所有 app / controllers,app / helpers,app / models等文件夹中的文件。
这种方法允许扩展现有的控制器和助手 只需在插件的文件夹中添加适当的文件和方法即可。 例如,如果我们必须添加方法get_list_of_projects SettingsHelper我们可以简单地创建名为settings_helper.rb的文件 插件的app / helpers文件夹。 Redmine 2.x将插件移动到插件中 应用程序根目录中的文件夹,因为描述了该方法 以上根本不起作用。所以我们必须使用修补和覆盖 上述机制使事情有效。
在链接中解释了如何制作上述修补机制。
我为redmine的time_tracker插件实现了该补丁,并且正在运行。 代码在github fork中 https://github.com/martinllanos/redmine_time_tracker
我希望它有所帮助。 有问题请问:)
答案 1 :(得分:1)
我有完全相同的问题,迁移时间跟踪器插件将在Redmine 2上使用。
我一直在网上搜索,虽然我仍然无法修复它,但我发现了一些有用的信息,我认为这是解决这个问题的方法。
第一部分是redmine插件基本上都是Rails引擎 http://www.redmine.org/boards/3/topics/13419
所以我开始谷歌搜索。
我在ruby-forum上发现了两篇帖子,讨论了从应用程序覆盖ApplicationHelper的问题,以及来自插件的ApplicationHelper。 他们提供了几种方法来解决这个问题,但我仍然没有测试它(我试图理解代码)
以下是帖子。
http://www.ruby-forum.com/topic/211017
http://www.ruby-forum.com/topic/1455297
如果你从那里得到一个具体/明确的答案那就太好了:)
我的任何消息都会发布。