所以我已经阅读了有关如何使用Rails 3子域约束和url助手的所有内容,这对大多数应用程序都很有用。例如,如果我想要一个管理子域(我这样做),我可以使用:
constraint :subdomain => :admin
scope :module => :admin
defaults :subdomain => 'admin'
但我的应用程序在许多(客户)域上运行,并且通常在其子域上运行。所以,像directory.customer.com
之类的东西。现在,如果我将该逻辑应用于admin.directory.customer.com
,则Rails事件directory
是子域的一部分,所以我必须这样做:
constraint :subdomain => /^admin.*/
scope :module => :admin
defaults :subdomain => 'admin'
这很棒,只需匹配任何带有admin的统计信息的子域名,但是当涉及到使用url助手时,它不是很好,因为我设置的默认子域名(admin
)不包括客户的子域名部分(directory
)。
将{host}选项设置为directory.customer.com
似乎无法解决此问题,url帮助程序仍会返回admin.customer.com
。是否有任何方法来设置它,以便url帮助者“知道”directory.customer.com
是:host的所有部分,子域不应该覆盖主机名的那一部分?必须有一个我可以修改的方法或者让它保持主机名完整的东西,对吗?