Есть ли способ, которым я могу сделать url_for для возврата URL-адреса на основе request.host во время маршрутизации отправки?Получить url на основе ограничений, используя url_for на основе смонтированного двигателя
mount Collaborate::Engine => '/apps/collaborate', :constraints => {:host => 'example.com' }
mount Collaborate::Engine => '/apps/worktogether'
Пример:
Когда пользователь находится на example.com хозяина
collaborate_path =>/приложений/сотрудничающие
Когда пользователь находится на любом другом хосте
c ollaborate_path =>/приложения/worktogether
После долгих исследований, я понимаю, что RouteSet класс имеет named_routes, который не учитывает ограничения, чтобы вернуть URL.
Я попытался перекрывая @set в action_dispatch/маршрутизации/route_set.rb пикап от применения рельсов, но вмятина работы, как ожидается,
@search_set = Rails.application.routes.set.routes.select{|x| x.defaults[:host] == options[:host] }[0]
@set = @search_set unless @search_set.blank?
Это помогает только в том случае, когда мы получаем путь к пути, доступ к которому осуществляется по пути UNC_CAT_NAME, и фактически не принимает хост в ограничение для возврата фактического пути. –