如果可以的话,我想在 URL 中隐藏 user_id。
http://domain.com:3000/users/1
这是页面信息。
动作:显示控制器:用户 ID:'1'
URL 中的 id 是必需的,以便控制器/操作知道它应该在页面上显示哪个用户。在这种情况下,它显示 id 为 1 的用户,但在其他情况下,您可能希望显示另一个用户的详细信息。
可以id
将 URL 中的 替换为其他标识信息,例如username
.
为此,请参阅http://railscasts.com/episodes/63-model-name-in-url。您只需覆盖to_param
模型中的方法。
有一个新的 Railscast 使用了friendly_id,这是一个提供 URL 重命名的很棒的 gem: http ://railscasts.com/episodes/314-pretty-urls-with-friendlyid
去做这个。在您的用户模型中,确保您拥有:
is_sluggable :whatever-attribute-you-want-to-mask-users/1
在您的用户控制器中使用:
@user = User.find_using_slug(params[:user])