Для приложения по управлению прокатом велосипедов я настроил встроенную форму сценария javascript, которую компании проката велосипедов могут использовать на своих веб-сайтах, чтобы пользователи могли искать в своем инвентаре велосипедов определенные даты c. После нажатия они попадают на мой веб-сайт, где они могут завершить sh бронирование.
Цель Для этих страниц бронирования в моем приложении я хотел бы создать формат URL в форме из:
https://booking.{@shop.website}/action
Попытки Я попытался изменить хост для соответствующего действия контроллера, через две две попытки
попытка 1 Использование set_booking_namespace
все еще приводит к получению хоста моего приложения в URL.
class ShopsController < ApplicationController
#create a new shop
before_action :set_booking_namespace, only: [:shop_availability]
def shop_availability
@shop = Shop.find(params[:id])
authorize @shop
end
def set_booking_namespace
@shop = Shop.find(params[:id])
Rails.application.routes.default_url_options = { host: @shop.website}
end
end
==> результирующий URL: http://localhost:3000/shops/66/shop_availability
Попытка 2 Перенаправление на поддомен и хост в действии контроллера. Это дало мне желаемый URL, но привело к сообщению об ошибке, что IP-адрес не может быть найден.
class ShopsController < ApplicationController
def shop_availability
@shop = Shop.find(params[:id])
authorize @shop
redirect_to subdomain: 'booking', :controller => 'shops', :action => "shop_availability", host: @shop.website
end
==> получающееся сообщение об ошибке: booking.bikeshop.nl’s server IP address could not be found.