2014-01-28 41 views
7

我正在嘗試strip我用戶模型中變量Username的空格。before_save,去掉一個字符串

我使用

before_save do 
    self.username.strip! 
end 

,但它似乎沒有工作,我失去了什麼?

+1

您錯過了作業'self.username = self.username.strip!' –

+0

@Hitham S. AlQadheeb,沒有必要進行作業。使用'strip!'已經做到了。 – Hardik

+0

哦,謝謝你的糾正。 –

回答

17

你寧願更新二傳手,而不是污染與回調模型:如果你想刪除只有開頭和結尾的白色的空間,您可以

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

順便說一句,我更喜歡squish

+0

謝謝你的回答,它工作得很好。你能向我解釋爲什麼你更喜歡擠地帶嗎? –

+0

擠壓刪除所有愚蠢的空白,剝離只刪除前後 – apneadiving

+0

聽起來很酷,所以我替換value.to_s.strip => value.to_s.squish對不對? –

0

使用.strip!

但正如你所說:

我試圖剝離變量名的空格在我 用戶模型。

我覺得其實你想刪除所有空格以下應該做的:

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

編輯:

哦,是的,你也可以使用鐵的內置方法squish()

thanx to apnea潛水提醒

+0

http://apidock.com/rails/String/squish是建立在軌道 – apneadiving