2013-08-26 47 views
0

在routes.rb中:Rails 3.2。路由幫手產生unvalid鏈接

scope "(:locale)", locale: /en|de/ do 
    get 'service' => 'service#index' 
    get 'service/:id' => 'service#show' 
end 

然後在視圖我使用助手service_path(params[:locale], id)並獲得此鏈接/en/service.1。 但我需要像這樣的鏈接/en/service/1

檢查通過rake routes路由:

service GET (/:locale)/service(.:format) service#index (locale=>/en|ru/} 
     GET (/:locale)/service/:id(.:format) service#show {:locale=>/en|ru/} 

如何獲得像/en/service/1正常聯繫,有什麼我做錯了嗎?

回答

1

您應該重命名控制器變複數形式路線Services

變化:

get 'service' => 'service#index'get 'services' => 'services#index', :as => :services

得到'service/:id' => 'service#show'得到'services/:id' => 'services#show', :as => :service

或者你可以寫簡單:

resources :services, :only => [:show, :index] 
+0

感謝您的幫助 – Leksey

+0

不客氣;) – zolter