Как использовать квартирный драгоценный камень для приложения saas на localhost без lvh.me?
Как реализовать tentant для перехода на URL вроде:
localhost:3000/tenent1
вместо использования lvh или любого домена или субдомена, например:
http://tenent1.lvh.me:3000
tenent1.example.com
или же
tenent1.com
где tenent1 - это один из арендаторов, созданных пользователем в процессе регистрации. Я не хочу использовать поддомен, домен.
2 ответа
Apartment
У gem есть файл инициализатора, в котором вы можете создать любой вид лифта. Я думаю, вы не хотите субдомен, так что вы можете написать лифт, который будет проверять первую часть маршрута (например, localhost:3000/tenant1/
)
Для получения дополнительной информации см. Apartment
файл инициализатора.
Я думаю, в вашем случае это будет что-то вроде этого (добавьте это в файл инициализатора квартиры)
Rails.application.config.middleware.use 'Apartment::Elevators::Generic', lambda { |request|
request.path.split('/')[1] # First element will be an empty string
}
Не уверен, почему вы хотите, чтобы эти маршруты понравились, но вы можете попробовать это как:-
get 'tenent:id', to: 'example_controller#example_action' as: :tenent
поэтому он будет генерировать URL следующим образом:
tenent GET /tenent:id(.:format) example_controller#example_action
На этом этапе вам нужно будет предоставить динамический идентификатор с этим путем, как
tenent_path(id: 1)
в браузере он сгенерирует точно такой же URL, который вы хотели:_
localhost:3000/teanent1
и на стороне контроллера вы можете получить доступ к этому идентификатору в params[:id]