通过用户名路由到个人资料页面
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 语句为空,我将使用该区域打印出错误消息,指出无法找到配置文件。
最重要的部分是这个路由应该在文件的末尾。
我在社交媒体网站上工作,遇到路由问题。
每个用户都有一个像 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 语句为空,我将使用该区域打印出错误消息,指出无法找到配置文件。
最重要的部分是这个路由应该在文件的末尾。