3 Oct
duccio

duccio il 3 October 2008 parla di Rails Snippet

Rails - XmlSerialization con to_xml

Sicuramente avrete già usato il to_xml per serializzare un oggetto ActiveRecord in Xml, non è che ci sia niente di nuovo o molto da spiegare… ma come al solito invece di impiegare i soliti momenti ho perso più tempo cercando di inserire nell’xml anche i modelli collegati.

Senza leggere la documentazione credevo che si facesse prima la query e dopo si usasse il metodo to_xml. Se non sbaglio prima si faceva proprio così!!

Con il Rails 2.1 se provate da Shell ad usare l’:include noterete che gli oggetti inclusi non vengono visualizzati a meno che non li accediate direttamente, nel momento in cui li accedete l’eager-loading evita l’accesso al Database. Questo comportamento si riflette nel to_xml se fate:

    1 Book.find(:all, :include => :author).to_xml

Nell’xml vedrete solamente il book e non l’author, se volete serializzare anche gli oggetti collegati dovete fare diversamente:

    1 Book.find(:all).to_xml :include => :user
    2 
    3 #Se dovete includere relazioni più profonde allora ricordate le parentesi {}
    4 Book.find(:all).to_xml :include => {:user => {:include => :pictures}}

1 Commento a “Rails - XmlSerialization con to_xml”

  1. Tex il 3 October 2008 alle 19:53 dice:

    Estremamente interessante, grazie 1000.

    E’ grandiosa anche la gestione dei named_scope che sono veramente notevoli, io li sto utilizzando a manetta e a livello di information hiding siamo alle stelle !!!

Scrivi un commento