To jest mój pierwszy raz za pomocą szyn i zastanawiałem się, czy to możliwe, aby załadować ma jeden polimorficzny stowarzyszenie w jednym zapytaniu SQL? Modele i związki między nimi są proste wystarczy: model aktywami/tabela może odnosić się do treści (zarówno obraz, tekst lub audio) przez polimorficzny stowarzyszenia, tjMarzą ładowanie polimorficznych stowarzyszeń ActiveRecord
class Asset < ActiveRecord::Base :belongs_to :content, :polymorphic => true end
i obraz, tekst, audio są zdefiniowane następująco:
class Image < ActiveRecord::Base :has_one :asset, :as => :content end
Kiedy próbuję załadować obraz, powiedzieć tak:
Image.first( :conditions => {:id => id}, :include => :asset )
określa on dwa zapytania, jeden do pobierania obrazu i inny do pobierania a sset (FYI, dzieje się tak również, jeśli określę :joins
). Na podstawie mojego zrozumienia, ActiveRecord robi to, ponieważ nie wie, że istnieje związek jeden do jednego pomiędzy Obrazem i Zasobem. Czy istnieje sposób na wymuszenie połączenia i pobranie 2 obiektów za jednym razem? Próbowałem również używać sprzężenia z niestandardowym wyborem, ale muszę utworzyć ręcznie modele ActiveRecord i ich powiązania.
Czy ActiveRecord zapewnić sposób to zrobić?
Zwykle nie używam już ORM-ów. To abstrakcja, bez której bez problemu. – Mario