Ruby on rails 的多态url_的默认命名空间

Ruby on rails 的多态url_的默认命名空间,ruby-on-rails,Ruby On Rails,在我的应用程序中,我有一个名称空间的管理部分。下面是my routes.rb中的一个片段: map.namespace :admin do |admin| admin.resources :contents end map.resources :contents 在我的管理名称空间中,我现在使用以下内容: link_to content, admin_content_path(content) 但我想做: link_to content, content 目前相当于: link_to

在我的应用程序中,我有一个名称空间的管理部分。下面是my routes.rb中的一个片段:

map.namespace :admin do |admin|
  admin.resources :contents
end

map.resources :contents
在我的管理名称空间中,我现在使用以下内容:

link_to content, admin_content_path(content)
但我想做:

link_to content, content
目前相当于:

link_to content, content_path(content)

有没有办法让视图中属于控制器的所有链接都以名称空间作为前缀?

如果我没有看错,您可以这样做

link_to content, [:admin, content]
这将使您能够访问admin\u content\u路径(content)。当然,假设内容是一个有效变量(看起来像是从索引脚手架视图中的块中获取了此代码)


但是,没有前缀可应用于视图中的所有restful链接。我建议从今往后只使用admin\u content\u path(content)的restful表示法。

看起来您映射了两次内容,这很奇怪。您不需要在这里使用嵌套资源,这适用于admin是一个包含许多内容的对象的情况,在您的情况下这是不关键的。我建议删除嵌套资源并尝试以下操作

:path_prefix-为具有所需路由变量的路由设置前缀

map.resources :contents, :path_prefix => '/admin'

我没有使用嵌套资源-我使用的是名称空间。我有两个对内容的引用,因为我想在它上有两组不同的视图-管理员和普通用户。