屏蔽URL rails的部分内容

时间:2012-07-03 07:56:54

标签: ruby-on-rails ruby-on-rails-3.1

我对rails非常陌生,目前正在寻找一种掩盖URL的方法,以便它们更具可读性。

目前我将作业作为用户的嵌套资源,因此我的网址显示为:

localhost:3000/users/1/jobs/8

我希望将网址显示为简单的内容:

localhost:3000/jobs/8

很高兴知道如何将其集成到我的路线中以获得更多可读的URL。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

resources方法有shallow选项:

  

这样就可以将其他深层嵌套资源的网址(例如/posts/a-long-permalink/comments/1234等博文评论的网址缩短为/comments/1234

示例:

resources :users, :shallow => true do
  resources :jobs
end

这会给你:

   user_jobs GET    /users/:user_id/jobs(.:format)     jobs#index
             POST   /users/:user_id/jobs(.:format)     jobs#create
new_user_job GET    /users/:user_id/jobs/new(.:format) jobs#new
    edit_job GET    /jobs/:id/edit(.:format)           jobs#edit
         job GET    /jobs/:id(.:format)                jobs#show
             PUT    /jobs/:id(.:format)                jobs#update
             DELETE /jobs/:id(.:format)                jobs#destroy