2016-03-31 16 views
1

Demo restoran uygulamam için yetenekleri tanımlamak için cancancan kullanıyorum. Her restoran has_many çalışanı ve her çalışanın user_id ve rolü öznitelikleri vardır. Bir kullanıcının, bir restoranın 'u yalnızca isimli kullanıcı tarafından düzenlenmesine izin vermek istiyorum. Bu restoranın, user_id ile current_user.id olarak çalışanı vardır ve rolü 'yönetici' dir. Benim sorunum bu rolün çalışanlarının bir çok verilmiş olabileceğini ve benRaylar, cancancan ile yetenekler

can :edit, Restaurant do |restaurant| 
    restaurant.employees.where(role: 'Manager').id=user.id 
end 

bunları bulunca tüm yöneticileri bir dizi alacağı ve bu kodun gerçek dönmek olmazdı. Bunu nasıl uygulayacağınıza dair herhangi bir fikir:? Teşekkürler!

cevap

2

Muhtemelen daha böyle bir şey arıyorsanız: Harikasınız

can :edit, Restaurant do |restaurant| 
    restaurant.employees.where(role: 'Manager', user_id: user.id).exists? 
end 
+0

! Teşekkürler –