Existe-t-il un moyen simple de le faire? Créez un texte balisé indiquant les modifications entre deux textes. Une aide intégrée peut-être? Regardé mais n'a pas pu trouver!Affichage d'un diff entre deux corps de texte dans Rails
Répondre
Vous pouvez le faire entièrement côté client en javascript en utilisant quelque chose comme jsdifflib (http://snowtide.com/jsdifflib).
http://github.com/pvande/differ Vous pouvez utiliser cela, qui effectue des diff sur les chaînes. Vous auriez à construire une logique pour le formater dans un état prêt à la sortie. Probablement en utilisant Builder :: XmlMarkup dans une aide.
Il y a aussi: http://github.com/myobie/htmldiff
qui semble balisage de sortie - mais pas très bien documenté.
En ce qui concerne l'aide intégrée, je ne pense pas que Rails ait quelque chose de intégré. http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Hash/Diff.html - mais contrairement au premier plugin, il est utilisé sur les hachages, pas sur les chaînes.
Pour ceux qui cherchent une réponse aujourd'hui: https://github.com/samg/diffy est le pari le plus sûr. Comme les autres pierres précieuses et les bibliothèques mentionnées ici ont été abandonnées depuis quelque temps maintenant.
Il y a deux façons:
1.works aussi pour chaîne non anglais
class String
def -(other)
s1 = self.mb_chars.downcase.chars
s2 = other.mb_chars.downcase.chars
s1.size >= s2.size ? s1 - s2 : s2 - s1
end
end
> 'abcde' - 'abc'
=> ["d", "e"]
> 'abc' - 'ac'
=> ["b"]
2. de http://tobyho.com/2011/03/26/string-difference-in-ruby/
class String
def -(other)
self.index(other) == 0 ? self[other.size..self.size] : nil
end
end
> 'abcde' - 'abc'
=> "de"
but
> 'abc' - 'ac'
=> nil
- 1. Angle entre deux vecteurs 2d, diff entre deux méthodes?
- 2. Git diff entre deux balises données
- 3. Diff deux onglets dans Vim
- 4. différence de pourcentage entre deux fichiers texte
- 5. créer un WIKI comme "diff" entre deux chaînes
- 6. diff entre les tables
- 7. Diff deux documents XML dans Ruby?
- 8. Diff entre STREAM_CLIENT_CONNECT et STREAM_CLIENT_ASYNC_CONNECT
- 9. Comparaison mot par mot diff de deux chaînes dans .NET
- 10. Insérer du texte entre deux lignes de repère dans bash
- 11. Expression régulière PHP pour extraire le texte entre guillemets dans le corps de la balise
- 12. Diff entre document.getSelection() et window.getSelection()
- 13. Différence entre chaîne et texte dans les rails?
- 14. Impossible de diff fichiers dans deux branches distinctes dans Git
- 15. date diff dans asp.net
- 16. Comment placer un texte entre deux images dans Android
- 17. Obtenez diff visuelle de deux révisions d'un fichier
- 18. saisir du texte entre deux éléments dans nokogiri?
- 19. Prendre diff de deux fenêtres ouvertes verticalement dans Vim
- 20. comment faire diff svn ne montrent que des changements de ligne non-espace entre deux révisions
- 21. Affichage du texte dans la colonne correcte
- 22. Qu'est-ce qu'un moyen facile de faire un diff trié entre deux fichiers?
- 23. Affichage d'un diff unifié avec d'autres outils meld/vimdiff
- 24. Affichage de texte de formulaire
- 25. Rails image Affichage Erreur
- 26. Affichage UpperCase dans une zone de texte
- 27. .NET Installer - Diff entre .exe et .msi
- 28. Espace entre deux liens dans LinkBar
- 29. diff différant avec diff?
- 30. Dire la différence entre deux gros morceaux de texte
Oui, diffy semble prometteur – Saim