Necesito enumerar todas las asociaciones belongs_to en un objeto modelo e iterar a través de ellas. ¿Hay alguna forma de hacer esto?¿Hay alguna manera de enumerar todas las asociaciones belongs_to?
29
A
Respuesta
30
Puede hacer uso del hash de la clase reflections
para hacer esto. Puede haber formas más sencillas, pero esto funciona:
# 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) }
16
Thing.reflections.collect{|a, b| b.class_name if b.macro==:belongs_to}.compact
#=> ["Foo", "Bar"]
por supuesto, se puede pasar: has_many, o cualesquiera otras asociaciones también
34
Usted puede hacer uso del método reflect_on_all_associations de Reflexión Para ejemplo:
Thing.reflect_on_all_associations(:belongs_to)
Cuestiones relacionadas
- 1. ¿Hay alguna manera de enumerar todas las asociaciones predeterminadas de modo normal, visual e insertar en vim?
- 2. ¿hay alguna forma de cargar asociaciones de asociaciones polimórficas ansiosas?
- 3. ¿Hay alguna manera de enumerar dependencias de tareas en Gradle?
- 4. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 5. ¿Hay alguna forma de enumerar todas las llamadas de iguales() de una determinada clase con Eclipse?
- 6. ¿Hay alguna manera de enumerar dependencias/requisitos de pip?
- 7. ¿Hay alguna manera de enumerar las sugerencias de editor de NetBeans?
- 8. Mismo modelo para dos belongs_to Asociaciones
- 9. ¿Hay alguna forma de enumerar las señales de Django?
- 10. Cómo enumerar todas las propiedades de clase
- 11. ¿Cómo enumerar todas las etiquetas de Git?
- 12. Actualice todas las asociaciones en UserControl de inmediato
- 13. ¿Hay alguna manera de evitar $ this-> en todas partes?
- 14. PHP cómo enumerar todas las funciones públicas de la clase
- 15. ¿Hay alguna manera de restablecer todas las propiedades estáticas de una clase en particular?
- 16. ¿Hay alguna manera de recorrer y ejecutar todas las funciones en una clase de Python?
- 17. Dado un módulo en pypi, ¿hay alguna manera de introspectar el módulo y mostrar todas las dependencias?
- 18. ¿Hay alguna manera de obtener todas las entidades administradas desde EntityManager?
- 19. ¿Hay alguna manera en Spring para autocablear todas las dependencias de un tipo determinado?
- 20. Android: ¿hay alguna manera fácil de encontrar todas las cadenas en mi proyecto?
- 21. ¿Hay alguna manera de eliminar todas las opciones adhesivas en CVS?
- 22. ¿Hay alguna manera de encontrar todas las entidades que han eliminado sus relaciones?
- 23. ¿Hay alguna manera de obtener todas las dependencias del proyecto a través del plugin sbt?
- 24. ¿Hay alguna manera de mostrar TODAS las advertencias del compilador en Visual Studio 2010?
- 25. en php ¿hay alguna manera de volcar "todas" las variables con su valor correspondiente?
- 26. ¿hay alguna manera de acceder a todas las referencias al objeto dado?
- 27. ¿Hay alguna manera de desactivar una etiqueta?
- 28. ¿Hay alguna manera de "reiniciar" la JVM?
- 29. ¿Enumerar/iterar todas las vistas en la actividad?
- 30. ¿Cómo enumerar todas las funciones en un módulo de Python?
doped shit! bonito....! –