2012-02-06 117 views
0

刚开始转换我的第二个应用程序,从轨2.3.11到3.2.1 - 不过,我已经打了一个问题,我的路线..Ruby on Rails的3.2.1路线

这是我的旧路由文件:

map.namespace(:admin) do |admin| 
admin.resources :products, :has_many => [:categories, :product_versions, :extra_documents] 
admin.resources :product_versions, :has_many => [:sub_versions] 
admin.resources :categories, :has_many => [:sub_categories, :sub_emanuals, :sub_tests] 
end 

这是我现在在我的Rails3中的routes.rb文件:

namespace :admin do 
    resources :products 
    resources :product_versions 
    resources :categories 
end 

这似乎导致在我看来,问题在那里我有这样的:

<%= link_to "Edit Categories", admin_product_categories_url(product) %> 

在rails 3中不再理解这是什么,我在这个应用程序中使用这种格式很多。 我试图解决此看到“耙路线”的输出后,我用:

<%= link_to "Edit Categories", admin_categories_url(product) %> 

然而,在HTML代码中担任了它给我的“HTTP网址://本地主机:3000/admin/categories.21“ - 请参阅.21 not/21

这个人可以请其他人吗?

由于提前, 安德鲁

+0

什么 “耙路线” 说? – 2012-02-06 18:47:34

回答

2

应该

admin_category_url(category) 

即。一类

话虽如此,

难道你不想要的:

admin_product_category(product, category) 

在这种情况下,你需要你的窝路线:

namespace :admin do 
    resources :products do 
    resources :categories 
    end 
    resources :product_versions 
end 
+0

太棒了!我将使用嵌套的路线,因为我确实需要admin_product_category(产品,类别) - 但是,当我把这些放在适当的位置时,我得到这个错误“The action'show'找不到Admin :: ProductsController”任何想法? – 2012-02-06 19:16:20

+0

admin/products目录中至少需要显示一个show view文件。看起来产品控制器存在,因此它可能是视图文件;该行为并不是严格要求的,我假设你没有。 – mark 2012-02-06 20:15:39

+0

这似乎是我的索引行为的一个问题,我让它做一个redirect_to:action =>'list'交换这个渲染似乎可以解决问题 – 2012-02-06 20:25:55