在RoR中为每个用户创建新的URL路径

如何在Ruby on Rails中实时创建新的URL路径?

例如:我希望我的用户拥有name.XXX.com或XXX.com/name。

FYi我在Heroku上托管代码。

看看subdomain-fu插件。

https://github.com/mbleigh/subdomain-fu

在示例中,我会查看“虚荣”url以前的一些答案,例如:http://www.username:

如何在Rails应用程序中实现虚荣URL?

如何在rails中实现“短”嵌套虚荣URL?

至于子域名,@ Arkan,@ Anton,@ tadman的其他建议是一个很好的起点。

你需要一个通配符CNAME或A记录来首先指出你的名字,在这种情况下是*.XXX.com ,以便在DNS级别上处理这个问题。 第二部分是检查你的request.host标题,它将是name.XXX.com或其他任何使用的。 您可以使用它在before_filter块中设置变量。

最简单的解决方案就像tadman描述的那样:设置DNS记录并为Apache / nginx编写重写规则/任何会吃子域并将其添加到params。

作为一个选项,设置一个中间件(更多关于它http://guides.rubyonrails.org/rails_on_rack.html ),您可以在Rails路由处理之前重写/路由请求。 仔细准备,这可以帮助实现非常复杂的东西:)