Trombone comment changer le nom de base (nom de fichier)?
Je suis en train de changer le nom de base (nom de fichier) de photos:
Dans mon modèle que j'ai:
attr_accessor :image_url, :basename
has_attached_file :image,
:styles => { :original => ["300x250>", :png], :small => ["165x138>", :png] },
:url => "/images/lille/:style/:id/:basename.:extension",
:path => ":rails_root/public/images/lille/:style/:id/:basename.:extension"
before_save :basename
private
def basename
self.basename = "HALLLO"
end
Mais le nom n'est pas du tout changé.
OriginalL'auteur Rails beginner | 2012-03-07
Vous devez vous connecter pour publier un commentaire.
Si vous assigner directement le fichier, vous pouvez le faire:
OriginalL'auteur Arnold Roa
Im, de cette bande d'espaces:
J'espère que cela va vous aider.
edit:
Dans votre exemple:
Devrait faire le travail. (mais pourrait renommer la méthode 😉 )
OriginalL'auteur Deradon
Je voulais éviter d'avoir à ajouter un
before_create
de rappel pour tous les modèles avec une pièce jointe. J'ai eu un coup d'oeil à la source et au moment d'écrire ces lignes, il semblait qqch comme:Vous pouvez donc le patch
cleanup_filename
.config/initializers/trombone.rb
OriginalL'auteur wpp
Trombone, vous permet désormais de passer dans un FilenameCleaner objet lors de la configuration de
has_attached_file
.Votre FilenameCleaner objet doit répondre à
call
avec le nom de fichier comme seul paramètre. La valeur par défaut FilenameCleaner supprime les caractères non valides sirestricted_characters
option est fournie lors de la configuration dehas_attached_file
.Donc ça va ressembler à quelque chose comme:
Et MyRandomFilenameCleaner sera:
Vous pourriez passer dans une classe qui a un
self.call
méthode plutôt qu'un objet, mais cela correspond à un Trombone, de la documentation en pièce Jointe.rb.OriginalL'auteur rjkrath