Devise - Как перевести автоматически сгенерированные ссылки

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

Например, в электронном письме с подтверждением я перевел все это, но ссылка для подтверждения учетной записи автоматически создается с использованием этого фрагмента:

<%= link_to t('devise.mailer.confirmation_instructions.confirm_link'), confirmation_url(@resource, :confirmation_token => @token) %>

Эта автоматически сгенерированная ссылка всегда указывает на мою веб-версию.com, и я хочу, чтобы она была условной в зависимости от домена (.com /.es). Когда ссылка не генерируется автоматически, я могу сделать это, используя:

if request.host.split('.').last == "com"

или же

if request.host.split('.').last == "es"

Но в этом случае я не знаю, как я могу это сделать.

Любое предложение?

Благодарю.

1 ответ

Решение

Вы можете добавить параметр:host к вашему параметру translation_url(@resource,: translation_token => @token) и найти правильный хост в таблице перевода:

confirmation_url(@resource, :confirmation_token => @token, host: t('host'))

В вашем файле yaml вы "переводите" правильный хост для языка пользователя, например

en:
  host: 'www.example.com'
Другие вопросы по тегам