我可以让控制器以不同的名称出现在 url 中吗?

Can I get a controller to show up in the url under a different name?

我有一个名为 "Pages" 的控制器。我可以让它以不同的名称显示在 url 栏中吗?例如,当我渲染 'show' 模板时,它显示在 url 下:localhost:3000/pages/:id。我可以让它显示为 localhost:3000/people/:id 吗?我只关心 'show' url;其他 url 没那么重要。

routes.rb

get "pages/results"
get "pages/index" => "pages#index", as: "index_page"
resources :pages do
  resources :categories
end

添加这条路线:

get '/people/:id', to: 'pages#show'

并从资源中删除旧的表演路线:

resources :pages, only: [:index, :new, :create, :edit, :update, :delete] do
  resources :categories
end

参见:Rails guides about rounting

你可以这样使用:

 get '/pages/:id' => "pages#show", path: 'people/:id'

这样您就可以在浏览器中访问特定的显示页面。 希望对你有帮助。