用户路径用户名

时间:2015-06-15 21:21:28

标签: ruby-on-rails ruby path friendly-id

要显示用户的个人资料,我使用了他们的ID。在控制器中:

@user = User.find(params[:id])

在路线中:

get ':id' => 'users#show'

但现在我尝试使用用户名的新方法:

get ':username' => 'users#show' #route

@user = User.find_by(username: params[:username]) #controller

当我使用/username转到用户的个人资料时 我看到错误:undefined method posts。在控制器中我得到了用户的帖子。但现在它不起作用。请告诉我为什么? 我还有一个问题。当我转到/users/posts或其他内容时,我的应用会认为,我会去使用该页面。怎么解决?该怎么办,如果用户注册,例如,用户名:"用户"?

1 个答案:

答案 0 :(得分:1)

Artyom如果你想让这个过程更容易,你可以使用friendly-id gem。 Ryan Bates也有Railscast

这样你就可以在网址中使用字符串作为id(即你的username):

http://localhost:3000/articles/hello-world

如果您有任何问题,请告诉我,

-Dave