让我们假设命名空间是“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 })
我也遇到了这个问题,这可以解决它:)