我正在尝试编写一个简单的函数来清理文件名字符串并更新对象。当我保存测试字符串时它可以工作,但是当我尝试保存我创建的字符串变量时,什么也没有发生。但是当我返回字符串时,输出似乎是正确的!我错过了什么?
def clean_filename
clean_name = filename
clean_name.gsub! /^.*(\\|\/)/, ''
clean_name.gsub! /[^A-Za-z0-9\.\-]/, '_'
clean_name.gsub!(/\_+/, ' ')
#update_attribute(:filename, "test") #<-- correctly sets filename to test
#update_attribute(:filename, clean_name) #<-- no effect????? WTF
#return clean_name <-- seems to returns the correct string
end
非常感谢。