2009-12-28 67 views
0

在我的应用程序中我有一个名称空间管理部分。下面是从我的routes.rb片段:多态url_for默认命名空间

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) 

有没有办法让属于控制器的视图内的所有链接都带有一个名称空间前缀?

回答

2

如果我正确地读你,你可以做

link_to content, [:admin, content] 

这应该让你admin_content_path(内容)。假设内容当然是一个有效的变量(看起来像你从一个索引脚手架视图中的块中获取这段代码)。

但是,没有适用于视图中所有宁静链接的前缀。我可以建议只使用admin_content_path(内容)的宁静记号。

0

看起来你是两次映射内容,这很奇怪。你不需要在这里使用嵌套的资源,这是为了管理员是has_many内容的对象,在你的情况下是unlikey。我建议删除嵌套资源并尝试以下操作。

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

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

我没有使用嵌套资源 - 我正在使用命名空间。 我有两个引用的内容,因为我想有两个不同的视图集 - 管理员和普通用户。 – 2009-12-29 07:07:50