Ich verwende Paperclip, um Profilfoto-Uploads in meiner App zu verarbeiten. Sie laden gut hoch und passen sich an die Spezifikationen in meinem Modell an. Wenn jedoch das Profil eines Benutzers: Foto gleich Null ist, kann ich den Standard nicht ändern, egal was ich versuche. Hier ist der Code, den ich verwenden möchte:
%Vor%Ich habe versucht "../public/images/example.jpg" und das funktioniert auch nicht, obwohl ich "beispiel.jpg" in meinem öffentlichen Bilderordner habe. Wenn ich Bildadresse in meiner Ansicht kopiere, bekomme ich:
%Vor% Ich habe diese Ordner zu meiner App hinzugefügt und dort eine missing.png-Datei eingefügt. Wenn ich zur obigen URL gehe, bekomme ich No route matches "/photos/normal/missing.png"
Hat jemand irgendwelche Ideen, was los ist?
has_attached_file im Profilmodell:
%Vor%add_attachment_photo_to_profile Migration:
%Vor% Dies ist der HTML-Code, für den gerendert wird, wenn :photo
existiert:
Dies ist der HTML-Code, für den gerendert wird, wenn :photo
null ist:
Sehen Sie sich die Option :default_url
in den rdocs an, deshalb wird sie gerendert wie es ist. Paperclip behandelt die Fälle, wenn keine Datei angehängt ist.
Sie können den Standard auf etwas anderes einstellen und die zusätzliche Arbeit in Ihrer Vorlage vermeiden.
Ich denke, dass Sie die Methode exists?
wollen.
@profile.photo.nil?
wird immer false
sein, weil es das Standardbild zurückgibt, wenn es fehlt.
HINWEIS : Prüft, ob die tatsächliche Datei vorhanden ist und kann sehr langsam sein, wenn Sie Ihre Bilder auf einem CDN hosten.
Als Umgehung können Sie vielleicht einfach überprüfen, ob die Datenbank denkt, dass es eine Datei gibt:
%Vor%Tags und Links ruby-on-rails-3 paperclip