【问题标题】:How to split an app's data per domain instead of per app instance?如何按域而不是每个应用程序实例拆分应用程序的数据?
【发布时间】:2013-04-13 22:28:21
【问题描述】:

假设您构建了一个简单的博客系统。

不必在 3 个不同的 Heroku dynos 上发布这个博客系统,这对于如此简单的事情来说会很昂贵(每个至少需要 2 个 dynos,这样它就不会闲置)......有可能拆分逻辑的选项一个应用程序上有 3 个不同的域。

您将如何为应用的一个实例获取当前存在的逻辑和数据,然后将其拆分,以便 3 个不同的域可以使用该域范围内的数据?这是利用现有数据来形成这个系统。

对不起,如果这不够清楚。

【问题讨论】:

    标签: ruby-on-rails mongodb heroku


    【解决方案1】:

    将所有三个域指向同一个应用程序。

    您需要创建一个域模型来处理这个问题。

    class Domain < ActiveRecord::Base
      has_many :blogs
      belongs_to :admin
      validates_uniqueness_of :domain_string
    end
    
    class ApplicationController < ActionController::Base
    
       before_filter :get_domain
    
    
       def get_domain
          @domain = Domain.find_by_domain_string(request.host)
       end
    
    end
    
    class BlogController < ApplicationController
    
       def index
          @blogs = @domain.blogs.whatever_additional_logic_you_need
       end
    
    end
    

    其他一切都会遵循相同的模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多