我已经在Redmine官方网站上提出了这个问题,但是没有得到任何答案,也许在这里我会有更多的机会。
我正在开发一个项目,并尝试通过向现有的Redmine插件添加功能来改进它,以便用户可以使用简单的表单将其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 源代码中定义的 "documents" 控制器和 add_attachment
方法。当我提交表单时,出现以下错误:
ActionController::RoutingError (No route matches {:controller=>"documents", :action=>"add_attachment", :id=>nil}):
如果这些控制器/方法在Redmine源代码中定义,是否可以通过插件调用它们?
如果是的话,您能否提供一些配置路由的建议?
@document
实例变量是nil
。你该如何设置它? - Marek Lipkarake routes
命令并查看路由的名称以及是否存在命名空间。 - Mohammad AbuShadydocuments_controller.rb
。我也这样做来覆盖 doorkeeper 的控制器。如果路径不完全相同,则会出现“无路由匹配”错误。 - brcebn