我正在编写一个适用于子域的网络应用程序。我还想添加自定义域,以便用户可以创建 CNAME,以便他们的域 (hello.com
) 转到他们的子域 (123.hellothere.com
)。
我该如何使用 Ruby on Rails 来实现这一点?
我的应用程序中已经有子域运行良好,我只是在添加自定义域时遇到了问题。
我在与用户博客相关的数据库中有子域
和custom_domain
。
我尝试按照本教程进行操作 - http://glacialis.postmodo.com/posts/cname-and-subdomain-routing-in-rails - 运气不好。
编辑
subdomain
和 custom_domain
附加到博客模型。对于子域,我使用了本教程 RailsCasts
最佳答案
我不知道你是如何设置子域的,但你应该在某个地方有一些看起来像这样的代码:
def current_account
Account.find_by_subdomain(request.subdomain) || Account.find_by_custom_domain(request.host)
end
此代码只是概念证明。您应该确保 a) 防止人们窃取彼此的域(对 custom_domain 参数进行唯一性检查),b) 确保他们不会将您的域输入到 custom_domain 字段中,从而允许他们拥有多个“本地”域。
编辑:您还应该确保,如果在 Controller 上定义了 current account
方法,则使用 @current_account ||=
来内存它,以避免不必要的数据库调用。
关于ruby-on-rails - Ruby on Rails 自定义域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759728/