2013-08-26 48 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