7

Ich versuche strip die Leerzeichen der Variablen Username in meinem Benutzermodell.Before_save, strip eine Zeichenfolge

Ich verwende

before_save do 
    self.username.strip! 
end 

, aber es scheint nicht zu funktionieren, fehlt mir etwas?

+1

Sie verpassen die Zuweisung 'self.username = self.username.strip!' –

+0

@Hitham S. AlQadheeb, gibt es keine Notwendigkeit für die Zuordnung. mit 'strip!' machen Sie das schon. – Hardik

+0

oh, danke für die Korrektur. –

Antwort

17

Sie würden lieber die Setter aktualisieren, anstatt Ihr Modell von verschmutzenden mit Rückrufe:

def username=(value) 
    self[:username] = value.to_s.strip 
end 

Btw, ich ziehe squish

+0

Danke für die Antwort, es hat gut funktioniert. Kannst du mir erklären, warum du lieber über Streifen ziehst? –

+0

Squish entfernt alle albernen Leerzeichen, Strip entfernt nur führende und nachfolgende – apneadiving

+0

Klingt cool, also ich ersetze value.to_s.strip => value.to_s.quest oder? –

0

Wenn Sie nur Vorder- und Hinter Leerraum entfernen möchten Sie können benutze .strip!

Aber wie Sie gesagt haben:

Ich versuche, die Leerzeichen der Variablen Benutzername in meinem Benutzermodell strippen.

Ich glaube tatsächlich, Sie entfernen wollen alle Leerzeichen folgende tun sollten:

.gsub(/\s+/, "")

EDIT:

Oh ja, können Sie auch Rail integrierte Methode squish()

Dank zu Apnoe Tauchen zum Erinnern

+0

http://apidock.com/rails/String/quish ist in Schienen gebaut – apneadiving

Verwandte Themen