2013-08-26 6 views
0

В routes.rb:Рельсы 3.2. Маршрутизация помощник генерирует недействительно ссылки

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

Смежные вопросы