Rails: получить имя хоста в инициализаторе - PullRequest
3 голосов
/ 19 марта 2012

Я использую Sorcery для аутентификации, и мне нужно настроить стороннюю аутентификацию в ее инициализаторе.

Инициализатор имеет строку, которая выглядит следующим образом:

config.twitter.callback_url "http://example.dev/auth/callback?provider=twitter"

... где example.dev - имя хоста, когда я использую Pow в локальной разработке. Это должно быть example.com, если приложение работает, или staging.example.com, если оно находится в стадии подготовки и т. Д.

Я хотел бы установить эту строку примерно так:

config.twitter.callback_url "#{Rails.hostname}/auth/callback?provider=twitter"

... но request.host - единственный известный мне метод, который знает об этом и доступен только на уровне контроллера.

Я могу использовать условный тест и вручную настроить имя хоста для каждой среды, но, поскольку я тестирую в разных локальных и промежуточных средах, было бы здорово просто установить это программно.

Есть предложения?

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

Использование:

`hostname`

Использует утилиту Unix "hostname" и возвращает строку.

4 голосов
/ 30 декабря 2013

Вы можете получить имя хоста через Socket.gethostname, который является частью стандартной библиотеки Ruby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...