我正在将我的应用程序从用户空间的子目录迁移到子域(即domain.com/~user到user.domain.com)。我有一个方法,在我的用户类目前获得每个用户的“家”网址:确定ActiveRecord模型中的域
class User
def home_url
"~#{self.username}"
# How I'd like to do it for subdomains:
#"http://#{self.username}.#{SubdomainFu.host_without_subdomain(request.host)}"
end
end
我想更新此子域,但没有硬编码的域名进入方法。正如你所看到的,我使用的是subdomain-fu插件,它提供了一些我可以用来做这件事的方法,除了它们需要访问模型不可用的request
。
我知道它被认为是坏的形式,使request
在模型中可用,所以我想避免这样做,但我不知道是否有一个好方法来做到这一点。我猜想,每次模型初始化时都可以传递域,但我认为这不是一个好的解决方案,因为每次初始化类时都必须记得这样做,而这经常发生。