【发布时间】:2014-03-07 10:08:06
【问题描述】:
我已经在Redmine官网问过这个问题,但没有得到任何答案,也许我会在这里有更多机会。
我正在处理一个项目,我尝试通过添加一些功能来改进 Redmine 的 existing plugin,以允许用户使用简单的表单将他的 Dropbox 文件上传到 Redmine 文档中。 Redmine 已经有了这个可能性,所以我想使用 Redmine 源代码中已经定义的控制器和方法。
我的插件视图之一中有以下代码:
<% html_title "Reddrop - Sync" %>
<h2>Synchronisation page</h2>
<p>Please choose your file</p>
<%= form_tag({:controller => "documents", :action => "add_attachment", :id => @document}, :multipart => true) do %>
<%= file_field_tag 'attachments[dummy][file]', :id => nil, :multiple => true, :onchange => "addInputFiles(this)" %>
<%= submit_tag(value = "Sync this file with Redmine") %>
<% end %>
我正在调用 Redmine 源代码中定义的“文档”控制器和 add_attachment 方法。当我提交表单时,我收到以下错误:
ActionController::RoutingError (No route matches {:controller=>"documents", :action=>"add_attachment", :id=>nil}):
如果在 Redmine 源代码中定义了这些控制器/方法,是否可以通过插件调用它们?
如果是,您能否就如何配置我的路线提供一些建议?
【问题讨论】:
-
您的
@document实例变量是nil。你是怎么设置的? -
嗯,代码中可能有一些错误,因为我无法尝试。我现在不能准确回答你,让我检查完整的代码。
-
因为这不是一个真正的答案,我想我只是链接到我不久前写的一个插件,它使用 Dropbox 作为 Redmine 的文件存储后端。 github.com/alexbevi/redmine_dropbox_attachments。没有更多的上下文,提供正确的答案有点困难。如果你在 Github 上有一个分支,你可以指出以便我们测试它可能更容易回答这个问题。
-
我找到了另一种上传文件的方法,效果很好,但感谢您提供的链接,我一定会看看。
-
也许控制器是命名空间的,尝试运行
rake routes并查看路由被调用的内容以及它们是否具有命名空间。
标签: ruby-on-rails plugins redmine