我正在编写一个适用于子域名的网络应用程序。我还想添加自定义域名,以便用户可以创建CNAME,以便他们的域名(hello.com
)转到他们的子域名(123.hellothere.com
)。
我如何使用Ruby on Rails进行此操作?
我的应用已经有了子域名正常工作,我似乎在添加自定义域时遇到了问题。
我在数据库中有与用户博客相关的subdomain
和custom_domain
。
我尝试过本教程 - http://glacialis.postmodo.com/posts/cname-and-subdomain-routing-in-rails - 没有运气。
修改的
subdomain
和custom_domain
附加到Blog模型。对于子域名,我在RailsCasts
答案 0 :(得分:4)
我不知道你是如何设置你的子域名的,但是你应该有一些看起来像这样的代码:
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 ||=
对其进行记忆,以避免对数据库进行不必要的调用。