Angabe von missing.png in Paperclip

7

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:

%Vor%

Dies ist der HTML-Code, für den gerendert wird, wenn :photo null ist:

%Vor%     
tvalent2 15.09.2011, 01:42
quelle

2 Antworten

11

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.

    
Dave Newton 15.09.2011, 02:46
quelle
15

Ich denke, dass Sie die Methode exists? wollen.

%Vor%

@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%     
complistic 27.03.2012 19:53
quelle

Tags und Links