Nasıl kapsam ActiveRecord dernekler Raylar 3 musunuz?
Raylar 3 bir projem var. Ray 3 Öncesinde ve başka kurmak için bir kapsam yeniden kullanma olanağı geldi. Eğer bir ilişki tanımlarken kapsamları kullanmak için bir yol olup olmadığını merak ediyorum (örneğin,"") has_many.
İzin sütunları olan kayıtlar var. Kayıtlar (hatta bir ilişki ile erişilebilir) süzülür, böylece dikkate iznim sütunlar götüren bir default_scope inşa etmek istiyorum.
Halen, Raylar 3, default_scope (buldum yamalar dahil) bir yordam değişken bağlama için geç ihtiyacım var) Geçen çalışılabilir bir araç vermeyin. İçine adlı bir kapsam geçirilebilir bir has_many tanımlamak mümkün mü?
Adlı bir kapsam yeniden fikir gibi görünecektir:
Orders.scope :my_orders, lambda{where(:user_id => User.current_user.id)}
has_many :orders, :scope => Orders.my_orders
Veya dolaylı olarak ilişki içinde adlı kapsamı kodlama gibi görünecektir:
has_many :orders, :scope => lambda{where(:user_id => User.current_user.id)}
Sadece bağlama ile geç default_scope uygulamak için çalışıyorum. Öncesinde bir yaklaşım kullanmayı tercih ediyorum eğer bir tane varsa), fakat herhangi bir çalışılabilir seçeneği kullanın.
Geçerli kullanıcı bahsediyorum beri, mümkün olan en son anda, gibi: değerlendirilen olmayan koşulları itimat edemem
has_many :orders, :conditions => ["user_id = ?", User.current_user.id]
CEVAP
"Named scopes are dead" bir göz atmanı öneririm
Orada ne kadar güçlü Öncesinde: açıklar yazar)
Yardımcı olur umarım.
#1 Mart 2014 DÜZENLEYİN
Bazı yorumlar devlet olarak, fark artık kişisel zevk meselesi.
Ancak, ben yine de şahsen bir üst katmana Öncesinde kapsamında kalmasını önlemek için tavsiye (bir denetleyicisi veya model doğrudan erişimi olan başka bir şey olmak, ve bunu yapmak gerekir:
- Bir kapsam oluşturun ve modelinizi bir yöntem aracılığıyla duyurmak. Bu yöntem denetleyici kalmanıza neden olur;
- Hiç bir zaman kendi denetleyicileri için modeller bunların üzerine hizmet katmanı falan mı var yani () ifşa ederse, o zaman iyisin. Yolsuzlukla mücadele katmanıhizmet ve kapsamları uygulanır hakkında çok fazla önemsemeden model kapsamında erişebilirsiniz.
Nasıl ActiveRecord modeli ve Raylar ta...
Raylar, nasıl bir render görünümü kull...
Nasıl ActiveRecord/Raylar ile bir sorg...
Nasıl Dizi Raylar KİMLİĞİ istisnasız A...
Hata Raylar üzerinde Yakut nasıl: &; L...