Ich habe drei Fragen im Zusammenhang mit Büroklammer und AWS S3.Paperclip benutzerdefinierte Interpolation (aka benutzerdefinierten Pfad für AWS S3)
1) In meinem Modell, das Büroklammer hat, ich habe folgenden Code:
has_attached_file :attachment,
:url => "/songs/:user_id/:basename.:extension",
:path => "/songs/:user_id/:basename.:extension"
Was ist der Unterschied zwischen URL und PATH?
2) Was ist :basename.:extension
?
3) Nehmen wir an, es gibt zwei Modelle: User
und File
. User
hat viele File
. Paperclip Pfad und URL sind in File
Modell konfiguriert.
In config/initializers/paperclip.rb
, ich unten Code setzen:
Paperclip.interpolates :user_id do |attachment, style|
attachment.instance.criteria.user_id
end
Ich bestätige, dass obiger Code funktioniert prima. Meine Datei wird unter songs/5/song.mp3
gespeichert. Ich möchte die MP3-Datei unter songs/user_id_5/song.mp3
speichern. Ich habe es unten versucht, aber es funktioniert nicht.
Paperclip.interpolates :user_id do |attachment, style|
'user_id_' + attachment.instance.criteria.user_id
end
Wie mache ich es so wie ich es möchte?
Für # 3 funktioniert String nicht. Nicht sicher warum. – JoHksi
Also, wenn Sie haben ': Pfad =>": user_id "...' in Ihrer 'has_attached_file' Methode, was ist der Wert von Pfad? –