我正在社交媒体网站上工作,我遇到了路由问题。
每个用户都有一个像facebook这样的个人资料页面,这是我使用的根目录:
get 'profile(/:id)' => 'profiles#show'
所以,当URL是这样的:www.sitename.com/profile/1它打开了属于id为1的用户的页面。但是,我也希望用户能够在url中使用他们的用户名而不用/轮廓/。所以它会像facebook一样。
例如:www.sitename.com/handsomeboy69
如何在路由中执行此操作?因为,rails可能认为在URL中传递的用户名是页面名称。
谢谢
答案 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语句为空,我将使用该区域打印出错误消息,指出无法找到配置文件。
最重要的部分是这个路由应该在文件的末尾。