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.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
хотя помощники могут быть доступны только во взглядах, но это рабочее решение.