Ruby on Rails - 隐藏URL中的user_id

时间:2012-09-04 00:13:34

标签: ruby-on-rails ruby url

如果可以的话,我想在网址中隐藏user_id。

http://domain.com:3000/users/1

这是页面信息。


动作:显示 控制器:用户 id:'1'

3 个答案:

答案 0 :(得分:1)

URL中的id是必需的,以便控制器/操作知道它应该在页面上显示哪个用户。在这种情况下,它显示id为1的用户,但在其他情况下,您可能希望显示另一个用户的详细信息。

可以将网址中的id替换为其他标识信息,例如username

为此,请参阅http://railscasts.com/episodes/63-model-name-in-url。您只需覆盖模型中的to_param方法即可。

答案 1 :(得分:1)

有一个新的Railscast使用了friendly_id,这是一个提供URL重命名的伟大gem: http://railscasts.com/episodes/314-pretty-urls-with-friendlyid

答案 2 :(得分:0)

要做到这一点。在您的用户模型中,请确保您拥有:

is_sluggable :whatever-attribute-you-want-to-mask-users/1

在您的用户控制器中使用:

@user = User.find_using_slug(params[:user])