Tüm belongs_to ilişkilendirmelerini bir model nesnesinde listelemeye ve bunlarla yinelemeye ihtiyacım var. Bunu yapmanın bir yolu var mı?Tüm belongs_to ilişkilendirmelerini listelemenin bir yolu var mı?
29
A
cevap
30
Bunu yapmak için sınıfın reflections
karma değerini kullanabilirsiniz. Orada daha basit yolları olabilir, ama bu işleri olabilir:
# say you have a class Thing
class Thing < ActiveRecord::Base
belongs_to :foo
belongs_to :bar
end
# this would return a hash of all `belongs_to` reflections, in this case:
# { :foo => (the Foo Reflection), :bar => (the Bar Reflection) }
reflections = Thing.reflections.select do |association_name, reflection|
reflection.macro == :belongs_to
end
# And you could iterate over it, using the data in the reflection object,
# or just the key.
#
# These should be equivalent:
thing = Thing.first
reflections.keys.map {|association_name| thing.send(association_name) }
reflections.values.map {|reflection| thing.send(reflection.name) }
tabii
16
Thing.reflections.collect{|a, b| b.class_name if b.macro==:belongs_to}.compact
#=> ["Foo", "Bar"]
, sen geçirebilirsiniz: Has_many, ya da başka dernekler de
Kimi Yansıma gelen reflect_on_all_associations yöntemin yararlanabilir
34
örnek:
Thing.reflect_on_all_associations(:belongs_to)
İlgili konular
- 1. Tüm maven bağımlılıkların java sürümünü listelemenin bir yolu var mı?
- 2. NetBeans düzenleyici ipuçlarını listelemenin bir yolu var mı?
- 3. Vim'deki tüm varsayılan normal, görsel ve insert mod bağlarını listelemenin bir yolu var mı?
- 4. Bir AWS hizmeti için eylem başına mevcut eylemlerin tümünü programlı olarak listelemenin bir yolu var mı?
- 5. Yüklemenin yazıcısını `git rebase -i` (interaktif) olarak listelemenin bir yolu var mı?
- 6. Tüm dosyaları bir masmavi gökgürültüsünden almanın bir yolu var mı
- 7. Tüm JavaScript yöntemlerini bir işlevle sarmanın bir yolu var mı?
- 8. PowerShell'de bir dizindeki tüm dosyaları bulabilmemin bir yolu var mı?
- 9. TableLayoutPanel'deki bir satırdaki tüm denetimleri kaldırmanın bir yolu var mı?
- 10. Tüm DOMElement özelliklerini almanın bir yolu var mı?
- 11. (ElasticSearch) NEST sorgusunda tüm kayıtları almanın bir yolu var mı?
- 12. Tüm dosyaları açıklığa kavuşturmak için bir çözüm yolu var mı
- 13. SASS'deki tüm kısmi dosyaları içe aktarmanın bir yolu var mı?
- 14. Sayfadaki tüm javascript'i durdurmanın bir yolu var mı?
- 15. Gerrit REST API'sından tüm işleri almanın bir yolu var mı?
- 16. Tüm Sublime Text 3 içindeki tüm paketleri listelemenin en pratik yolu nedir?
- 17. SKActions'i duraklatmanın bir yolu var mı?
- 18. django.db.connection.queries öğesini temizlemenin bir yolu var mı?
- 19. Sorgu raylar ilişkisi belongs_to, has_one ile var
- 20. CGPoints'i karşılaştırmanın bir yolu var mı?
- 21. RubyGems'i çevrimdışı güncellemenin bir yolu var mı?
- 22. Düzenleri canlandırmanın bir yolu var mı? [Android]?
- 23. Hafızayı sınırlamanın bir yolu var mı?
- 24. Pydev'de REPL almanın bir yolu var mı?
- 25. YQL'i HTML'ye döndürmenin bir yolu var mı?
- 26. Parametreyi çıkarmanın bir yolu var mı?
- 27. WiX yapılarını hızlandırmanın bir yolu var mı?
- 28. Tip bildirimlerini genişletmenin bir yolu var mı?
- 29. cuBLAS'da "saypx" yapmanın bir yolu var mı?
- 30. Files.write (...) yöntemini almanın bir yolu var mı?
doped bok! Güzel....! –