J'essaye d'écrire une fonction simple pour nettoyer une chaîne de nom de fichier et mettre à jour l'objet. Lorsque je sauvegarde une chaîne de test, cela fonctionne, mais lorsque j'essaie d'enregistrer la variable de chaîne que j'ai créée, rien ne se passe. Mais quand je retourne la chaîne, la sortie semble être correcte! Qu'est-ce que je rate?Rails: enregistrement d'une chaîne sur un objet - problème de syntaxe?
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
Merci beaucoup.
Où la fonction clean_filename est-elle appelée? – Laz
Je l'appelle depuis la console pour tester; il est attaché à un objet document. par exemple Document.find (1) .clean_filename – pendevere
Ne pas avoir une installation de rails sur ce système, donc ne peut pas tester, essayez write_attribute. – Laz