让我们假设命名空间是“abc”,我们有一个 Controller “abcs”,另一个使用命名空间“abc”的 Controller 是“defs”。

为了易于理解:

AbcsController
Abc::DefsController

当当前流在AbcsController中时,url_for({:controller => "abcs", :action => :new})返回正确的url,但是当流在Abc::DefsController中时,我给出的是:
url_for({:controller => "abcs", :action => :new })

它将其视为:
url_for({:controller => "abc/abcs", :action => :new})  #Observe abc/abcs

因此,这里应该是“abcs”,而不是“abc/abcs”,但是它像这样处理。

有什么解决方案?请问我更多信息。

最佳答案

从这里:http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
最后一个注释框显示为:

这意味着您要做的就是:

url_for({ controller: "/abcs", action: :new })
我也遇到了这个问题,这可以解决它:)

10-06 11:34