2013-10-12 24 views

回答

4

我假设这是一个GET请求。因此,这将是这样的:

路由定义

get '/:username', to: 'users#show', as: 'user_by_name' 

用途:

link_to 'Show', user_by_name_path(user.username) 

useruser.username应与实际变量代替。

更多在Non Resourceful Routes官方指南。

如果您想覆盖users资源,请关注此主题https://stackoverflow.com/a/18261912/383912。对于show路由,您需要使用'member'而不是'collection'。

+0

+1,应该'get'/:username''而不是''/ users /:username'' OP想要这样的网址'site.com/username' –

+0

哦,是的,谢谢指点。我假设他知道这些的副作用。 – HungryCoder

2

您可以设置路径是在路线:

resources :users, path: '', only: [ :show, :edit, :update, :destroy ] 

你可以离开了:only,如果你想的索引页,并创建行动,为用户映射到/

检查出friendly_id轻松使用用户名作为路由中的ID。

确保在用户路由之前定义其他路由,例如​​,否则它们将被解释为用户标识。