带用户名的用户路径
User path with username
为了显示用户的个人资料,我使用了他们的 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
或其他内容时,我的应用认为我转到了 uset 的页面。如何解决?如果用户使用例如用户名注册,该怎么办:"users"?
Artyom 你也可以在上面使用 friendly-id gem if you want to make this process easier on you. Ryan Bates has a Railscast。
这样您就可以在 url:
中使用字符串作为 ID(即您的 username
)
http://localhost:3000/articles/hello-world
如果您有任何问题,请告诉我,
-戴夫
为了显示用户的个人资料,我使用了他们的 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
或其他内容时,我的应用认为我转到了 uset 的页面。如何解决?如果用户使用例如用户名注册,该怎么办:"users"?
Artyom 你也可以在上面使用 friendly-id gem if you want to make this process easier on you. Ryan Bates has a Railscast。
这样您就可以在 url:
中使用字符串作为 ID(即您的username
)
http://localhost:3000/articles/hello-world
如果您有任何问题,请告诉我,
-戴夫