2012-02-06 115 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