2010-09-23 20 views
5

Çok kullanımlı bir uygulama yapıyorum.Rails 3

Tüm veri yalıtımı, her tabloda TenantID sütunu tarafından yapılır.

Tüm kiracı modelleri için çoklu kiracılığı otomatik olarak işlemenin en iyi yolu nedir?

Örnek:

Contacts.new({.....}) should automatically add :tenant => curret_user.tenant 
Contacts.where({....}) should also add :tenant => curret_user.tenant 

Şu anda bu özel kullanıcı parametreleri için kayıtlar getirebilir CanCan mücevher böyle bir şey görüyorum. Ancak, ekleme ve güncelleme işlemi için hiçbir şey sağlamaz. Ya da nasıl yapacağımı anlamıyorum.

Saygılarımızla, Alexey Zakharov.

cevap

1

Tüm koleksiyonlarla kiracı nesnesi üzerinden çalışacaksanız bu mümkündür. Ben multitenant yakut mücevher kontrol öneriyoruz

#Find all products with price > 500 in current tenant scope 

current_tenant.products.where(:price.gt => 500) 

#It also work for create and save operations 

current_tenant.products.create :name => "apple", :price => 200 
+0

Bunu yapmak için multitenant gem'i kullandınız mı? Yeni bir kiracı nesnesini, planlamayla birlikte kayıt sırasında nasıl atayacağımı anlamaya çalışıyorum. Yardım edebilir misin? – Nathan

+0

@Nathan, sorununuzu çözmeyi başardınız mı? Girişte aynı sorunla karşı karşıyayım çünkü current_tenant bu noktada ayarlanmadı ve geçersiz kimlik bilgileri hatası verdi – scanales

+1

@scanales Sorgularımın her birini current_tenant ile kapsamayı tamamladım. Orada model seviyesi geri arama yapacak mücevherler var, bu yüzden gerçekten yapmaya çalıştığınız şeylere bağlı. – Nathan

1

: Burada

Mongoid kullanarak örnektir. Gerçekleştirilen tüm sorguların mevcut kiracıya uygun olmasını sağlamayı önemsiz kılar. http://blog.codecrate.com/2011/03/multitenant-locking-down-your-app-and.html

örn:

Multitenant.with_tenant current_tenant do 
    # queries within this block are automatically 
    # scoped to the current tenant 
    User.all 

    # records created within this block are 
    # automatically assigned to the current tenant 
    User.create :name => 'Bob' 
end 
1

ben çoklu müşteri için Kiracı taş gibi Yasası kullanılır. Oldukça iyi bir mücevher ve kullanımı çok kolay. İşte bu geminin bir belgesidir Act As Tenant