在我的 Rails 应用程序中,用户可以创建一个注册表,并且 URL 是例如:
http://localhost:3000/registries/3
我怎样才能使该网址成为例如:
http://localhost:3000/erinwalker
提前致谢。
在我的 Rails 应用程序中,用户可以创建一个注册表,并且 URL 是例如:
http://localhost:3000/registries/3
我怎样才能使该网址成为例如:
http://localhost:3000/erinwalker
提前致谢。
最简单的方法是在您的 routes.rb 文件底部创建一个新路由:
match "/:username" => "registries#show"
将它放在您的 routes.rb 文件的底部很重要,因为这将匹配任何格式为“/whatever”的路由,它与它之前的路由不匹配。
这将指向您的注册表控制器的显示操作。所以在那个动作中你可以做
@user = User.find_by_username params[:username]
@registry = @user.registry
在IMO, friendly_id gem和其他 slugging gem 是最简单的方法。
(这是一个friendly_id railscast。)
也就是说,很容易创建一个接受合法 slug 值的路由并自己重定向或查找它。