通过用户名路由到个人资料页面

Routing to profile page by username

我在社交媒体网站上工作,遇到路由问题。

每个用户都有一个像 facebook 这样的个人资料页面,这是我使用的根:

get 'profile(/:id)' => 'profiles#show'

所以,当 URL 是这样的:www.sitename.com/profile/1 它打开属于用户 ID 1 的页面。但是,我也希望用户能够在没有 /profile/ 的情况下使用他们在 url 中的用户名。所以它会像 facebook。

例如:www.sitename.com/handsomeboy69

如何在路由中执行此操作?因为,rails可能认为URL传入的username是一个页面名

谢谢

我修好了。这是我使用的路线:

  get ':username' => 'profiles#show'

在控制器中我使用了这个语句:

if params.has_key?(:username)
  @profile = User.find_by_username(params[:username])
elsif params.has_key?(:id)
  @profile = User.find(params[:id])
else

end

末尾的 else 语句为空,我将使用该区域打印出错误消息,指出无法找到配置文件。

最重要的部分是这个路由应该在文件的末尾。