使用用户帐户作为子域构建设计 Rails 应用程序当用户访问的子域不存在时,我无法弄清楚如何重定向到默认 (default.domain.com) 子域。
例如:
- user.domain.com 有效(用户存在于数据库中)
- user2.domain.com 失败(用户不在数据库中),应重定向到 default.domain.com
如何实现?我使用下面的代码,但基于 Rails.env 的重定向进入了一个永无止境的循环:(
class ApplicationController < ActionController::Base
protect_from_forgery
layout "application"
before_filter :account
def account
@user = User.where(:subdomain => request.subdomain).first || not_found
end
def not_found
# next 2 lines is a temp solution--- >
raise ActionController::RoutingError.new('User Not Found')
return
# --- > this below fails results in endless loop
if Rails.env == "development"
redirect_to "http://default.domain.dev:3000"
return
else
redirect_to "http://default.domain.com"
end
end
end