更改从ID到用户名的设计路线

Mat*_*son 8 devise ruby-on-rails-3

我已尝试使用帖子更改路由以指向用户名.我知道这很简单,但由于某种原因我目前无法计算它.我也在设计文档页面上尝试了所有内容.

绘制用户名路由

我只想让路由布局使用用户名而不是id而不是用户前缀.喜欢:

http://example.com/username

代替

http://example.com/users/1

san*_*rew 7

class User < ActiveRecord::Base
  def to_param
    username
  end
end
Run Code Online (Sandbox Code Playgroud)

在你的控制器中

@user = User.find_by_username(params[:id])
Run Code Online (Sandbox Code Playgroud)

代替

@user = User.find(params[:id])
Run Code Online (Sandbox Code Playgroud)

这将使您的路线像http://example.com/users/username

制作你想要的东西,你可以做如下路线:

resources :users, :path => '' do
  # nested resources...
end
Run Code Online (Sandbox Code Playgroud)

所以,user_path(@user)将使URL为http://example.com/username, 但这不是一个好习惯,因为它不是REST.我建议你留下像http://example.com/users/username这样的网址