创建访问主应用程序相同数据库的子域的最佳方法

Best way to create subdomains that access the same database of main application

所以我想为mysite.com创建子域,例如forum.mysite.com、blog.mysite.com、podcast.mysite.com等

我们是一个教学网站,所以我们创建的任何 post 都将 link 到更深入地涵盖 post 主题的相关信息视频。我还希望这些子域在用户登录时引用所有主站点用户数据。例如,当在论坛上登录时。mysite.com,我可以在论坛上显示用户的成就 posts (他们通过主站点获得的)。

出于这些原因,除其他外,我希望子域引用与主应用程序相同的数据库。有人告诉我,在创建子域时,应该使用单独的应用程序。但是,我认为在这种情况下,我应该使用相同的应用程序并相应地连接路由,如 this post.

中所述

我的 routes.rb 文件中的这一行(基本上直接取自源代码)可以很容易地 link 我的博客索引的子域:

match '/', to: 'blog_posts#index', constraints: { subdomain: 'blog' }, via: [:get, :post, :put, :patch, :delete]

但是,当我使用此方法时,我可以转到 blog.mysite.com/videos/28 等路线,这很奇怪,因为我只想通过主站点访问视频。所以 blog.mysite.com/videos/28 应该呈现 404.

我对连接子域还很陌生,所以我不确定哪种方法最好。有没有一种简单的方法可以创建多个 link 到同一个数据库的应用程序?如果是这样,有什么影响吗?或者最好只使用相同的应用程序,并对路线进行大量调整?

我使用 Heroku 进行托管,所以这就是我的数据库所在的位置。

看起来你在某处有一个 resources :videos,所以你需要在那里添加子域限制。

基本上,为每个路由和资源定义子域。