15 Stimmen

wie man strip_tags und truncate innerhalb meiner Model.rb verwenden?

Strip_tags funktioniert bei mir in meiner Ansichtsseite, aber nicht in meinem Modell (ich verwende es in einer before_save-Funktion)

75voto

Aleks Punkte 4415

Sie können auch auf diese Weise auf Helfer in Ihren Modellen zugreifen:

ActionController::Base.helpers.strip_tags(text)

16voto

Malik Shahzad Punkte 5988
ActionView::Base.full_sanitizer.sanitize(your_html_string)

Das wird für Sie funktionieren. Oder Sie können eine Hilfskraft definieren wie:

def strip_html_tags(string)
    ActionView::Base.full_sanitizer.sanitize(string)
end

Und dann verwenden Sie dies wie:

strip_html_tags(your_html_string)

Um bestimmte Tags zu entfernen, übergeben Sie zusätzliche Parameter. Quelle: Rails-API-Dock säubern

0voto

Paul Danelli Punkte 927

Also, ich mochte keine dieser Lösungen, da ich lieber halten Ansicht Funktionalität aus meinen Modellen. Also habe ich stattdessen einen Dekorator verwendet (wie https://github.com/drapergem/draper ) und war dann in der Lage, die Hilfsmethode als Abkürzung zu verwenden h.strip_tags .

-3voto

stephenmurdoch Punkte 32826

Der Truncator des armen Mannes:

my_string[0, 145] 

Es wird in einem Modell funktionieren, ohne Hilfsmethoden von ActionController::Base aufrufen zu müssen. Es wird nicht fügen Sie die elipsis für Sie, aber das ist wahrscheinlich leicht zu beheben ...

-11voto

aNoble Punkte 6953

strip_tags ist eine Helper-Methode, und Helper sind in der Regel nicht innerhalb von Modellen verfügbar.

Sie sollten sich überlegen, ob Sie nicht etwas wie das Edelstein desinfizieren stattdessen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X