2011-07-28 166 views
0

我有這個在我的路線:的Rails:路由問題

resources :cvits 

產生這些路線:

cvits GET /cvits(.:format)   {:controller=>"cvits", :action=>"index"} 
      POST /cvits(.:format)   {:controller=>"cvits", :action=>"create"} 
new_cvit GET /cvits/new(.:format)  {:controller=>"cvits", :action=>"new"} 
edit_cvit GET /cvits/:id/edit(.:format) {:controller=>"cvits", :action=>"edit"} 
    cvit GET /cvits/:id(.:format)  {:controller=>"cvits", :action=>"show"} 
      PUT /cvits/:id(.:format)  {:controller=>"cvits", :action=>"update"} 
      DELETE /cvits/:id(.:format)  {:controller=>"cvits", :action=>"destroy"} 

,但我想我的網址是單數(例如/ cvit /,/ cvit/new,/ cvit /:id)。什麼是最簡單的方法來改變這個?

謝謝!

解決:想通了,我所做的:

資源:cvits,:PATH => 'cvit'

+0

只是一個通知:它不會花費任何東西來接受一個答案。 – apneadiving

回答

2

好:

resources :cvit 

檢查文檔在這裏:http://guides.rubyonrails.org/routing.html#singular-resources

或更適合:

resources :cvits, :path => "cvit" 

相同的文檔頁面。

+0

the:as =>'cvit'不起作用,但是這樣做:resources:cvits,:path =>'cvit' – bdeonovic

+0

似乎doc是錯誤的,那麼:http://guides.rubyonrails.org/routing.html#overriding-這個名字幫手 – apneadiving

+0

啊,不,這個幫助者重命名.. – apneadiving

0

你只是想要一個單一的資源:

resouce :cvit 

# instead of 
resources :cvits 

請注意,您的控制器名稱等仍將是複數(CvitsController)。爲了指定,您可以通過:

resource :cvit, :controller => 'cvit' 

此外,請注意,當您這樣做時,您沒有索引操作。奇異資源假設那裏只有一件事,而不是很多。

假設您擁有的是(單數資源),這比傳遞path選項要好。 path選項只是覆蓋名稱而不是行爲(即,您仍然有索引,即使在處理單一資源時沒有意義)。