2012-03-18 200 views
2

我正在编写一个适用于子域名的网络应用程序。我还想添加自定义域名,以便用户可以创建CNAME,以便其域名(hello.com)转到其子域(123.hellothere.com)。Ruby on Rails自定义域名

我该如何去用Ruby on Rails来做这件事?

我已经有子域在我的应用程序上正常工作,我似乎有添加自定义域的问题。

我在与用户博客有关的数据库中有subdomaincustom_domain

我试过按照这个教程 - http://glacialis.postmodo.com/posts/cname-and-subdomain-routing-in-rails - 没有运气。

编辑

subdomaincustom_domain连接到博客模型。对于子域我用这个教程在RailsCasts

回答

3

我不知道该怎么你有你的子域设置,但你应该有一些代码,看起来像这样的地方:

def current_account 
    Account.find_by_subdomain(request.subdomain) || Account.find_by_custom_domain(request.host) 
end 

此代码只是一个证明的概念。您应该确保:a)防止人们窃取对方域(对custom_domain参数进行唯一性检查); b)确保它们不会将域输入到custom_domain字段中,以允许它们具有多个“本地”域。

编辑:如果在控制器上定义了current account方法,则还应确保使用@current_account ||=对其进行记忆以避免不必要的对数据库的调用。

+2

如果您使用SSL,请记住一件事情,那就是您需要一个通常较贵的通配符证书。否则,由于子域不匹配,您将遇到客户获取无效证书的问题。 – kobaltz 2012-03-18 16:11:06