2014-01-28 42 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