在before_save中,删除一个字符串

时间:2014-01-28 09:09:24

标签: ruby-on-rails ruby-on-rails-4 before-filter before-save

我正在尝试strip我的用户模型中变量Username的空格。

我正在使用

before_save do
  self.username.strip!
end

但它似乎不起作用,我错过了什么?

2 个答案:

答案 0 :(得分:17)

您宁愿更新setter而不是使用回调污染模型:

def username=(value)
  self[:username] = value.to_s.strip
end
是的,我更喜欢squish

答案 1 :(得分:0)

如果您想删除仅前导空格,可以使用.strip!

但正如你所说:

  

我正在尝试删除我的变量Username的空格   用户模型。

我认为实际上你想删除所有空格以下应该:

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

修改

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

感谢 apneadiving 提醒