Ruby on Rails 3.2.1路由

时间:2012-02-06 18:24:27

标签: ruby-on-rails ruby ruby-on-rails-3

刚开始将我的第二个应用程序从rails 2.3.11转换为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中不再理解这是什么,我在这个应用程序中使用这种格式A LOT。 在看到“rake routes”的输出后我尝试解决这个问题,并且我使用了:

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

然而,在提供的html代码中,它给了我一个“http:// localhost:3000 / admin / categories.21”的URL - 请参阅.21 not / 21

请问其他人吗?

提前致谢, 安德鲁

1 个答案:

答案 0 :(得分:2)

应该是

  admin_category_url(category)

即。一个类别

话虽如此,

你不想要:

admin_product_category(product, category)

在这种情况下,您需要嵌套路线:

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