rails получить корень приложения / базовый url

в моем приложении у меня есть несколько API, которые находятся в домене api. Теперь в одном из API я хочу создать url-адрес, указывающий на основной домен, скажем

test.com/blabla...

Я пытался использовать url_for но, кажется, по умолчанию root_url или запрос.хозяин находится в домене api. Url_for будут

api.test.com/blabla..

а я хочу, чтобы это было

test.com/blabla...

Url_for может принимать параметр

host: ...

чтобы установить его, чтобы быть test.com/, вопрос в том, как я могу получить корневой / базовый url (test.com) для хозяина? root_url или запрос.хозяин все api.test.com.

какие идеи? Спасибо.

4 ответов


по данным этой можно сделать request.domain


просто, чтобы это было полезно кому-то еще , я наткнулся на это сегодня

request.base_url

дает полный путь в локальном, а также в прямом эфире .

request.domain

дает только доменное имя, поэтому иногда он как бы ломает ссылку при перенаправлении


самый простой альтернативный метод:

включить в вас класс

include Rails.application.routes.url_helpers

создать функцию или просто использовать root_url чтобы получить корневой/базовый url приложения:

  def add_host_prefix(url)
    URI.join(root_url, url).to_s
  end

наконец-то: добавить

Rails.application.routes.default_url_options[:host] = 'localhost:3000'

in:

Your_project_root_deir/config/environments/development.rb

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


запрос.домен терпит неудачу на CF он дал url домена не базовый url