2010-11-18 24 views
0

Her hesabın kendi alt etki alanına sahip olduğu bir SAAS çözümü kuruyorum. sub1.mydomain.com sub2.mydomain.com ve uygulama şablonunda, her bir site için bir özel kısmi yanı sıra özel bir style.css dosyasına eklenmek istediğim standart bir sütun şablonu oluşturdum. her bir alt alan. Bu yüzden özel bilgileri göstermek için bunu nasıl ayarlayabilirim diye merak ediyorum. Bir stil denetleyicisi kurmak istiyorum - bu yüzden sadece sol kenar çubuğunun öğelerini gösterir ve onunla ilişkilendirilmiş her etki alanı adı için style.css sayfası herhangi bir iyi fikre sahip midir?Özel şablonlar kullanarak rails3

Temel olarak bir statik sayfa denetleyicisi için Ben zaten bu kurulum var, yanı sıra başka bir DB eylemi Ama herhangi bir ipucu takdir edilecektir.

cevap

1

projesinde bir göz atın üzerinde çalıştığım: https://github.com/fabiob/guildhost-hosting

ihtiyacınız kod edilir app/controllers/application_controller.rb yılında:

Ayrıca
class ApplicationController < ActionController::Base 
    protect_from_forgery 

    before_filter :load_subdomain 

    def load_subdomain 
    @subdomain = self.request.subdomains[0] || 'local' 
    load_customer 

    raise "Invalid Subdomain: #{self.request.subdomains}" unless @subdomain.present? 
    end 

    def load_customer 
    @customer = Customer.find(@subdomain) 
    end 
end 

app/views/layouts/application.html.erb yılında:

<!DOCTYPE html> 
<html> 
<head> 
    <title><%= @customer.name %> @ MySaaS.com.br</title> 
    <%= stylesheet_link_tag :all %> 
    <%= stylesheet_link_tag "/themes/#{@subdomain}/main.css" %> 
    <%= javascript_include_tag :defaults %> 
    <%= csrf_meta_tag %> 
</head> 
<body> 
    ... 
</body> 
</html> 

bir /public/themes var Her alt alan için özelleştirmeyi içeren klasör. Her bir alt alan, tek bir CSS, main.css'u özelleştirme fırsatına sahiptir. Birden fazla CSS dosyasına gerek duyulursa, main.css'da @import cümleleri kullanılmalıdır.

+0

Artık filtre etiketine sahip olduğumuza göre, her bir eylemi küresel bir kimlik bulmak için bir şekilde çıkarabilir miyim? @accountid = Account.find_by_subdomain! (request.subdomain) .id – tspore