如何拆分每个域的应用程序数据而不是每个应用程序实例?

时间:2013-04-20 17:18:32

标签: ruby-on-rails mongodb heroku

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

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

您如何获取应用程序的一个实例的当前逻辑和数据,然后将其拆分,以便3个不同的域可以使用作用于该域的数据?这将使现有数据形成该系统。

很抱歉,如果这还不够清楚。

1 个答案:

答案 0 :(得分: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

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