2009-10-15 5 views
1

j'ai un modèle objet:retours act_as_revisable ObjectRevision au lieu de simplement la révision

class Item < ActiveRecord::Base 
    acts_as_revisable 
end 

Lorsque je tente d'utiliser Item.find (2,: with_revisions), il revient en tant que classe ItemRevision au lieu d'une classe d'objet et Je ne peux pas faire des choses comme assigner d'un autre modèle (c'est-à-dire ItemList.items < < article).

Existe-t-il un moyen de le faire retourner un élément ou un moyen de le transformer en un élément?

Répondre

1

Lorsque vous avez un objet de révision, vous pouvez appeler une méthode sur elle pour obtenir ce qu'il est une révision pour:

@page.revisions.first.page 

Dans cet exemple, j'ai le modèle de page qui a des versions pour ses dossiers, et sur tous les version il existe une méthode page pour obtenir l'objet auquel cette version fait référence.

+0

Merci beaucoup. Je ne pouvais pas comprendre cela pour la vie de moi. – gir

+0

Attendez, cela semble retourner l'objet de la révision en cours. Si je devais faire @ page.find_revision (: previous) .page, cela me donnerait @page en supposant que @page était la révision en cours. – gir

Questions connexes