【问题标题】:Best way to create subdomains that access the same database of main application创建访问主应用程序相同数据库的子域的最佳方法
【发布时间】:2015-10-16 19:20:44
【问题描述】:

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

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

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

我的 routes.rb 文件中的这一行(基本上直接取自源代码)可以轻松地将子域链接到我的博客索引:

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。

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

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

【问题讨论】:

    标签: ruby-on-rails heroku subdomain


    【解决方案1】:

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

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

    【讨论】:

    • 哦,好的。我确实有很多我没有列出的资源。因此,您的意思是对所有子域使用相同的应用程序并将每个资源连接起来以使其行为不同:resources :videos, constraints: { subdomain: 'www' (or some other appropriate regex)}?
    • 或者我想在单独的约束块中列出所有主站点和子域路由会比我上面的评论更简单。
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2016-05-23
    • 2011-06-06
    • 2011-02-24
    • 2021-01-30
    • 2012-10-30
    相关资源
    最近更新 更多