免責聲明
確保您實際上能夠向市場推出你寫給其他客戶的應用程序。你有沒有和你的客戶簽訂合同?如果是這樣,他們很可能擁有您正在編寫的代碼的權利,在這種情況下您將違反您的合同。
在維基百科上有關於Multitenancy的非常好的文章,你應該閱讀。它會回答你很多問題,並讓你思考你的策略。我的建議是以這樣的方式構建應用程序,以便您可以支持多租戶,因爲在事實之後將其更加困難。
除了可能通過更改樣式表的設置完成的配色方案之外,37s應用程序不允許進行任何自定義。例如:
<%= stylesheet_link_tag(@tenant.style.name) %>
您將加載基於子域租戶:
before_filter :load_tenant, :if => :tenant_request?
def tenant_request?
request.subdomain.present? && !request.subdomain == 'www'
end
def load_tenant
@tenant = Tenant.find_by_name(request.subdomain)
end
如果你希望能夠擁有的功能,你可以打開和關閉的最簡單的方法可能是添加一個位掩碼(有一個gem for bit masks),它允許您查詢可用的特徵。這不會超過一定數量的功能,但會是一個好的開始。你會最終視圖代碼,如:
<% if tenant.has_feature?(:messaging) %>
<li><%= link_to 'Messages', messages_url %></li>
<% end %>
確保無論選擇你做,你做的工作最簡單的事情。
[什麼是SaaS?](http://izlooite.blogspot.com/2009/05/what-is-saas.html) – 2011-06-10 12:17:27