【发布时间】:2013-10-21 23:03:54
【问题描述】:
我动态创建 username.users.example.com 形式的 URL:
bob.users.example.com
tim.users.example.com
scott.users.example.com
所有*.users.example.com 请求都应该转到特定的控制器/操作。如何在 routes.rb 中指定?
对www.example.com 的所有其他请求都会转到我的routes.rb 文件中的正常路由列表。
更新:我看了railscast about subdomains,它显示了以下代码,这似乎正是我需要的(更改了控制器和子域):
match '', to: 'my_controller#show', constraints: {subdomain: /.+\.users/}
问题是它只匹配根 URL。我需要它来匹配每个可能的 URL 与 *.users 子域。所以很明显我会把它放在我的routes.rb文件的顶部。但是我如何指定一条包罗万象的路线呢?仅仅是'*'吗?还是'/*'?
【问题讨论】:
-
这个 railscast 可能会帮助你:railscasts.com/episodes/221-subdomains-in-rails-3?autoplay=true
-
rails 3 rails 3.2 rails 4 hmhmmmm...到底是哪一个?顺便说一句,如果您打算拥有大量 javascript,请记住跨子域的 ajax 是 PITA。
-
@phoet - 我应该对 Rails 版本更清楚。我正在使用 3.2,但如果这意味着这个解决方案会更容易,我会升级到 4.0。
-
我的建议是:不要这样做。但是@AmitThawait 指出的railscast 就是一个很好的例子。您还可以在此处查看多租户示例:github.com/phoet/on_ruby/blob/master/config/routes.rb#L30
-
@phoet - 你是什么意思不这样做?不要创建我想要的应用程序?还有其他解决方案吗?
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 routes ruby-on-rails-4