Я пытаюсь написать простую функцию для очистки строки имени файла и обновления объекта. Когда я сохраняю тестовую строку, она работает, но когда я пытаюсь сохранить созданную строковую переменную, ничего не происходит. Но когда я возвращаю строку, вывод кажется правильным! Чего мне не хватает?
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
Большое спасибо.