سؤال

I'm writing an OmniAuth dynamic provider and in the callback I need to get the current hostname (the app works in several different hostnames). I don't have the request object, just a big env hash. I found this hash contains an entry, env["SERVER_NAME"], with the hostname, but I'm not sure if that's a stable entry or it may change depending on the web server or stuff like that.

I also found the hostname buried in env["action_dispatch.routes"] in the member variable @host.

Any ideas what's the best or canonical way to get the hostname at this point?

هل كانت مفيدة؟

المحلول

The app is not in production yet, but so far the the private beta, using env["SERVER_NAME"] worked like a charm.

نصائح أخرى

In a rails controller, you can simply use:

request.host

Though I'm not sure if that sources anything different from what you already looked at. This works fine for me in a Rails 3.1 app I'm working on.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top