2012-03-27 30 views
6

Müşterilerime sahip bir sitem var. Her müşterinin kendi teması olabilir ve belirli bir müşterinin giriş yapması durumunda şirket teması yüklenmelidir. application.css.scss ben her şirket için böyle bir çizgi var:stil sayfası koşullarının yüklenmesi

@import "_theme_x.css.scss"; 
@import "_theme_y.css.scss"; 
@import "_theme_z.css.scss"; 

Ben sadece örneğin yükleyebilir nasıl theme_x bir şirketin x kullanıcısı giriş yapıp, theme_y ve theme_z dosyasını yüklemediğinde mi? Yoksa bunu yapmanın daha iyi bir yolu var mı? Teşekkürler! İlk kimin istemci bilgisayar kimliği olan kontrol ve onun için bazı

düzeni uygulamak ve bu alanda farklı bir düzen için diffrent css dosyalarını içerebilir gibi

cevap

7

Temalar büyükse, bunları uygulamadan ayırmak isteyebilirsiniz. on.css ve bunları düzeninize göre koşullu olarak yükleyin. istemci kullandığı temanın adını döndürür application_helper içinde bir yardımcısı theme_stylesheet varsa Örneğin,: bunlar küçükse

# application.html.erb 
<%= stylesheet_link_tag 'application', theme_stylesheet %> 

, ben Namespacing gibi. Application.css dosyanızı olduğu gibi bırakın, ancak temaları vücutta üst düzey bir kural kullanacak şekilde değiştirin. Temayı seçmek için gövde üzerine bir etiket yerleştirin. Bunun güzelliği, temayı dinamik olarak değiştirebilmeniz.

<body class="theme-<%= theme_stylesheet %>"> 
    ... 
</body> 

_theme_x.css.scss

body.theme-x { 
    ... 
} 
3

bu şekilde yapabiliriz. i

yaptığı gibi

ilk ben uygulama yardımcı yöntemi yapmak ama ben seni

o müşterilerine göre yapabileceği kullanıcı rollerine göre düzenini uygulayabilir.

def choose_layout 
    if is_admin?(current_user) or is_super_admin?(current_user) 
     'admin' 
    else 
    'application' 
    end 

Ve denetleyicisi kullanıcıya uygulamak uygun olacaktır düzeni daha filtreye önce çağırmak

rolleri

class AdministratorController < ApplicationController 

    include ApplicationHelper 
    layout :choose_layout 

def index 
    @user = User.new 
    @current_user = current_user 

end 

uç fikir alabilir umut ....

İlgili konular