Как настроить пользовательский URL с пользовательским доменом для указанного действия c в рельсах - PullRequest
0 голосов
/ 27 февраля 2020

Для приложения по управлению прокатом велосипедов я настроил встроенную форму сценария 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.

...