2010-11-15 61 views
1

在Rails 2.X我們:作爲Rails 2和Rails3路由選項之間的區別?

map.resources :posts, :controller => 'posts', :as => 'articles' 

這實質上對我們的帖子路線創建一個別名。例如,這會將「domain.com/articles/」發送到posts控制器索引操作。

但是,在Rails3中,as選項的行爲有所不同。例如:

resources :posts, :controller => 'posts', :as => 'articles' 

設置了一個名爲路由,而不是一個別名,並要「domain.com/articles/」給出了一個錯誤:

No route matches {:controller=>"posts"} 

我怎麼老(梁2 ):作爲使用新的(Rails 3)api的行爲? PS:請不要告訴我簡單地重命名我的控制器。這對我來說不是一種選擇。

回答

0

可以使用path選項完成此相同的行爲:

resources :posts, :path => '/articles/' 

現在例如/posts/new變得/articles/new

0

免受基於路由的回報率引導的一些粗略的閱讀,我想你可能需要嘗試:

resources :articles, :controller => "posts" 

(http://guides.rubyonrails.org/routing.html#specifying-a-controller - 使用)

您可能還需要添加:as => "articles",但該名稱助手可能已經設置,因爲您正在添加:articles資源。