Je m'attendais à ce que ce soit l'union de tous les changements entre 2 versions. (En utilisant des versions vestales 1.0.2)Vestal Versions changes_between ne fonctionne pas pour moi
ruby-1.8.7-p174 > contact.version
=> 12
ruby-1.8.7-p174 > contact.latest_approved_version
=> 8
ruby-1.8.7-p174 > contact.changes
=> {}
ruby-1.8.7-p174 > contact.versions.last.changes
=> {"first_name"=>["I changed this one baby", "AdminF"]}
ruby-1.8.7-p174 > contact.changes_between(8,12)
=> {}
ruby-1.8.7-p174 > contact.changes_between(9,12)
=> {"deleted"=>[true, false]}
ruby-1.8.7-p174 > contact.changes_between(10,12)
=> {}
ruby-1.8.7-p174 > contact.changes_between(11,12)
=> {"first_name"=>["I changed this one baby", "AdminF"]}
Comme vous pouvez le voir aucun changement entre 8 et 12, mais les changements entre certains d'entre eux. La chose étrange est je jure que cela fonctionnait hier!
Voici la méthode Vestal utilise, je ne suis pas sûr de ce que le problème est:
def changes_between(from, to)
from_number, to_number = versions.number_at(from), versions.number_at(to)
return {} if from_number == to_number
chain = versions.between(from_number, to_number).reject(&:initial?)
return {} if chain.empty?
backward = from_number > to_number
backward ? chain.pop : chain.shift unless from_number == 1 || to_number == 1
chain.inject({}) do |changes, version|
changes.append_changes!(backward ? version.changes.reverse_changes : version.changes)
end
end
oui, j'ai ajouté la dernière version approuvée. Si vous voyez ma sortie de console, vous pouvez voir les changements entre chaque version, donc je suis sûr à 99,99% que les changements existent. Voir les changements entre 11-12 – Joelio
Tout ce que je dis, c'est qu'en regardant votre sortie, il est possible que les versions 8 et 12 ressemble exactement la même chose. Si vous pouvez publier le résultat de changes_between (8,9), changes_between (9,10), changes_between (10,11) et changes_between (11,12), il sera probablement plus facile de suivre les changements apportés à chaque version. Et comme je l'ai mentionné plus tôt, une inspection simple révélera facilement la vérité. – DanneManne
Man votre droit, merci, je suppose que l'évidence était la réponse :) – Joelio