suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Rails: HTML-Tag-Text abschneiden, während der Linktext beim Abschneiden der Datenbankspalte erhalten bleibt

Ich habe eine Datenbankspalte namens comment, in der Kommentare gespeichert werden, die HTML-Tags enthalten.

Um große Texte zu kürzen und vollständig in einem Popup-Fenster anzuzeigen, habe ich die truncate(comment, length: 50, escape: false)-Funktion verwendet.

Betrachten wir zwei Beispiele:

Beispiel 1: comment 列包含以下带有 HTML 标记的纯文本。通过使用 escape: false Die Spalte enthält den folgenden Klartext mit HTML-Tags. Durch die Verwendung von escape: false werden HTML-Tags nicht abgeschnitten und der Text wird korrekt angezeigt, einschließlich aller Formatierungen wie Fett:

<strong>123</strong><br>
\\<br>
<strong>test</strong>

Beispiel 2: In diesem Fall verwende ich href 标记创建链接,但 escape und das Verhalten funktioniert nicht wie erwartet. Es erkennt es nicht als HTML-Markup, sondern behandelt es als einfachen Text:

<a href="/uploads/attachments/2211/test.pdf" target="_blank">ClickToOpenFile</a>

Nach der Kürzung sieht die Anzeige wie folgt aus:

<a href="/uploads/attachments/2..

Das gewünschte Ergebnis besteht jedoch darin, nur den Text innerhalb des -Tags abzuschneiden und den Linktext „ClickToOpenFile“ intakt zu lassen.

Ich habe es mit rawhtml_safe versucht, aber leider lieferten sie nicht die gewünschten Ergebnisse.

P粉896751037P粉896751037491 Tage vor578

Antworte allen(1)Ich werde antworten

  • P粉665427988

    P粉6654279882023-09-13 16:54:17

    使用 github.com/hgmnz/truncate_html gem:

    some_html = '<ul><li><a href="http://whatever">This is a link</a></li></ul>'
    truncate_html(some_html, length: 15, omission: '...(continued)')
      => <ul><li><a href="http://whatever">This...(continued)</a></li></ul>

    Antwort
    0
  • StornierenAntwort