如何在没有lvh.me的localhost上使用公寓gem为saas应用程序?

时间:2018-05-19 07:25:47

标签: ruby-on-rails saas

如何实现帐篷去网址:

localhost:3000/tenent1

而不是使用lvh或任何域或子域,如:

http://tenent1.lvh.me:3000
tenent1.example.com 

tenent1.com 

其中tenent1是用户在注册过程中创建的tenent之一。我不想使用子域名,域名。

2 个答案:

答案 0 :(得分:1)

Apartment gem有一个初始化文件,您可以在其中创建任何类型的电梯。我猜你不想要子域名,所以你可以写一个检查第一个路线部分的电梯(例如localhost:3000/tenant1/

有关详细信息,请参阅Apartment intializer文件。

我想在你的情况下它会是这样的(在你的公寓初始化文件中添加它)

 Rails.application.config.middleware.use 'Apartment::Elevators::Generic', lambda { |request|
   request.path.split('/')[1] # First element will be an empty string
     }

答案 1 :(得分:0)

不确定您为什么喜欢这条路线,但您可以尝试这样: -

get 'tenent:id', to: 'example_controller#example_action' as: :tenent

所以它会像这样生成url: -

tenent GET    /tenent:id(.:format)  example_controller#example_action

此时你需要像这样提供动态id这个路径 -

tenent_path(id: 1)

在浏览器中,它将生成您想要的完全相同的URL:_

localhost:3000/teanent1

在控制器端,您可以在params[:id]

中访问此ID