按用户名

时间:2015-09-23 21:55:36

标签: ruby-on-rails social-networking

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

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

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

所以,当URL是这样的:www.sitename.com/profile/1它打开了属于id为1的用户的页面。但是,我也希望用户能够在url中使用他们的用户名而不用/轮廓/。所以它会像facebook一样。

例如:www.sitename.com/handsomeboy69

如何在路由中执行此操作?因为,rails可能认为在URL中传递的用户名是页面名称。

谢谢

1 个答案:

答案 0 :(得分:0)

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

  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语句为空,我将使用该区域打印出错误消息,指出无法找到配置文件。

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