I am not sure if this is sub-domain handling, but am interested on how this can be handled in rails.
How can an app handle the traffic to, say - http://part1.mydomain.com. The other normal traffic I guess will be handled by the main controller (of www.mydomain.com). Any pointers to any tutorial/books appreciated.
# We need this redirection not only for users, I founded that some bots
# request public pages to myapplication.com directly. We need to respond
# with the appropiate redirection so they don't index the error page.
# They would because the error page is a successful HTTP response.
def ensure_subdomain
if account_subdomain.blank?
redirect_to_url "http://www.#{account_domain}#{request.request_uri}"
end
end
def find_account
@current_account = Account.find_by_short_name(account_subdomain)
if !@current_account
logger.info("there's no account with short name
#{account_subdomain}, redirecting to the home")
redirect_to_url "http://www.#{account_domain}"
end
end
4. Be very careful, scope everything by @current_account if necessary.
For example modify User.authenticate to receive an account:
def self.authenticate(account, email, password)
u = account.users.find_by_email(email) # user needed to get the salt
u && u.authenticated?(password) ? u : nil
end
and in general DO NOT use find over classes as in
Project.find(...) # WARNING, APPLICATION-WIDE
but instead
@current_account.projects.find(...) # GOOD
That's a guideline and exceptions depend on the application, for example
@current_user.projects.find(...)
may be already fine because you've validated that @current_user
belongs to @current_account somehow etc.