2013-10-04 33 views
1

我建设用轨道4这个程序,我想的Rails的路由资源与用户名,而不是ID

有这样

example.com/users/username路线

代替example.com/users/id

要做到这一点我用Friendly Id

现在一切都工作,所以我不希望这条路可访问

example.com/users/id

应该我个人制定的路线为所有CRUD操作还是有办法改变这个?

resources :users do 
    resources :post do 
     get 'expand' 
     get 'current' 
    end 
end 

谢谢!

回答

1

是的,你可以通过一个带白色或黑色的crud动作列表的哈希值给资源方法。

例(白名单)

resources :users, only: [:index, :edit]

例(黑名单)

resources :users, except: [:show, :delete]

你应该隐藏 '秀' 的行动。

resources :users, except: [:show]

也,你可以看看这个指南http://guides.rubyonrails.org/routing.html#restricting-the-routes-created

+0

我想我解释说自己错了。 我不想要的是,例如,可以使用ID转到用户显示页面。但我仍然想要所有的动作 ,所以这将工作example.com/users/potato,而不是这个example.com/users/1 –

+0

你有解决它吗?我有新的答案 - 您可以添加show/format:id格式的限制,您可以在其中更改:id和一些正则表达式;) –

+0

出现了一些问题,我不得不放弃该项目,但是当我离开我时没有解决问题。谢谢你的提示 –