Rails 3.2。路由助手生成无效链接

时间:2013-08-26 08:45:12

标签: ruby-on-rails ruby ruby-on-rails-3 routes

在routes.rb中:

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 个答案:

答案 0 :(得分: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]