Rails: сохранение строки на объекте - проблема с синтаксисом? - PullRequest
0 голосов
/ 20 марта 2010

Я пытаюсь написать простую функцию для очистки строки имени файла и обновления объекта. Когда я сохраняю тестовую строку, она работает, но когда я пытаюсь сохранить созданную строковую переменную, ничего не происходит. Но когда я возвращаю строку, вывод кажется правильным! Чего мне не хватает?

 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

Большое спасибо.

1 Ответ

0 голосов
/ 22 марта 2010

Выполняется ли обновление только в случае изменения идентификатора объекта? Я думаю, что разумно обновлять слот только тогда, когда сам объект изменился.

Вы когда-нибудь пытались использовать gsub вместо gsub !, чтобы изменился идентификатор объекта?

...