如何让我的rails应用程序显示url作为用户名?

时间:2012-06-14 19:29:33

标签: ruby-on-rails url routes naming-conventions

在我的Rails应用程序中,用户可以创建一个注册表,例如:

http://localhost:3000/registries/3

如何将该网址设为例如:

http://localhost:3000/erinwalker

提前致谢。

2 个答案:

答案 0 :(得分:4)

最简单的方法是在routes.rb文件的底部创建一个新路由:

match "/:username" => "registries#show"

将它放在routes.rb文件的底部非常重要,因为这将匹配格式“/ whatever”的任何路由,它与之前的路由不匹配。

这将指向您的注册管理机构控制器的show动作。所以在这个行动中你可以做到

@user = User.find_by_username params[:username]
@registry = @user.registry

答案 1 :(得分:1)

friendly_id gem和其他打击宝石是IMO最简单的方法。

(这是一个friendly_id railscast.

也就是说,创建一条接受合法slug值并重定向或自行查找的路线很容易。