1

我已经阅读了有关 Rails 3 中路由如何工作的资源,但遇到了一些困难。

在我的应用程序中有博客,我的 routes.rb 包含:

  resources :blogs
  root :to => "home#index"

包含“博客”的 URL 可以正常工作。

但是,我想做的是在 URL 中添加“博客”。具体来说,/blog/:id(用于显示)和/blog(用于索引)。

如果我添加该行:

match 'blog' => 'blogs#index'

然后 /blog 确实显示了索引,但是它破坏了我的博客编辑表单,因为操作 URL 从 /blog/:id 更改为 /blog.:id

关于如何使用博客而不是博客的任何想法,并且还允许博客索引位于 /blog 上?我已经尝试了很多东西(比如资源 :blog资源 :blogs, :as => 'blog')但没有得到任何结果。假设有一种方法可以做到这一点,而无需手动定义显示、编辑、销毁和索引的每条路线。

4

2 回答 2

4

您需要使用 :path 选项

resources :blogs, :path => 'blog'
于 2010-11-09T14:21:21.770 回答
0

删除您的match行,并将您的resouces行更改为:

resources :blogs, :path => 'blog'

检查:http ://edgeguides.rubyonrails.org/routing.html#translated-paths

于 2010-11-09T14:27:45.567 回答