使用用户名自定义rails url

god*_*yan 12 url routes ruby-on-rails

我想复制推特个人资料页面,并有一个用户名为" http://www.my-app.com/username " 的网址,我可以手动将其输入地址栏并导航到我可以的个人资料页面链接到自定义URL.

我认为问题出在路线上 - 这是我的routes.rb中的代码

map.connect '/:username', :controller => 'users', :action => 'show'
Run Code Online (Sandbox Code Playgroud)

此外,我有QuestionAnswer模型,我想用自定义的URL链接到它们,如下所示:

http://www.my-app.com/username/question/answer/2210

Paw*_*cki 13

你的路线没有错.在定义所有其他路线之后,请记住最后定义它.我还建议使用RESTful路由,并且只有当您希望看到更好看的URL时才使用命名路由.不要用map.connect.这里有一些关于Rails路线的好读物.

这是这样的:

map.resources :questions, :path_prefix => '/:username' do |question|
  question.resources :answers
end

map.resources :users

map.user '/:username', :controller => 'users', :action => 'show'
Run Code Online (Sandbox Code Playgroud)

只是你可以扩展的草案.