Rails使用用户名而不是id来路由资源

时间:2013-10-04 19:07:31

标签: ruby-on-rails resources routes ruby-on-rails-4

我正在使用rails 4构建此应用程序,我希望拥有这样的路由

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 个答案:

答案 0 :(得分:1)

是的,你可以将带有白色或黑色crud动作列表的哈希传递给资源方法。

示例(白名单)

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

示例(黑名单)

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

你应该隐藏'show'动作。

resources :users, except: [:show]

另外,您可以查看本指南http://guides.rubyonrails.org/routing.html#restricting-the-routes-created