2016-04-10 4 views
0

Ich möchte meine Bilder mit dem normalen Dateispeicheradapter speichern.Schienen und Paperclip, die Bilder in einem bestimmten Pfad speichern, setzen falsche URL

Das ist mein PAPERCLIP_STORAGE_OPTS:

class User < ActiveRecord::Base 

    attr_accessor :PAPERCLIP_STORAGE_OPTS 

    has_attached_file :user_photo, PAPERCLIP_STORAGE_OPTS_THUMB 

Wenn ein Benutzer ein Foto hochgeladen - es speichert tatsächlich das Bild in der richtigen Position auf meinem System:

PAPERCLIP_STORAGE_OPTS = { 
    :styles => { :thumb => '170x170!#', :medium => '450x300!>', :large => '600x400!>',:desktop => '750x300!>'}, 
    :convert_options => { :all => '-quality 100' }, 
    :processor  => [ :papercrop ], 
    :path => "/opt/www/myapp/images/:class/:attachment/:id_partition/:style/:filename" 
    } 

Das ist mein Modell ist

/opt/www/myapp/images/users/user_photos/000/000/050/original/picture 

Aber wenn ich gehe, um das Bild zu zeigen, so:

<%=image_tag current_user.user_photo.url(:thumb), :height=> "30", :width=> "30" %> 

Das Bild wird nicht gefunden, und in meinem Logs Ich sehe die Bild Anfrage unter folgenden URL:

ActionController::RoutingError (No route matches [GET] "/system/users/user_photos/000/000/050/thumb/picture"): 

Und die vollständige URL erstellt ist:

https://www.myapp.com/system/users/user_photos/000/000/050/thumb/picture?1460285803 - die Entschlossenheit tut.

Wie kann ich die Büroklammer so konfigurieren, dass meine Bilder in dieser speziellen URL gespeichert werden können/opt/www/myapp/images/und dennoch über Paperclip in meiner Rails-App korrekt zugegriffen werden kann?

Antwort

1

Sie müssen URL-Option setzen:

für mich war es:

has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>", :small=>"60x60>" }, 
         :path => ':rails_root/public/system/:class/:id/:style/:filename', 
         :url => '/system/:class/:id/:style/:filename' 

für Ihren Fall nicht sicher, wie Sie Bilder in der App-Ordner speichern direkt, so dass Sie versuchen können (testen Sie es aus Konsole und ändern Sie sie):

:path => "/opt/www/myapp/images/:class/:attachment/:id_partition/:style/:filename", 
:url => '/images/:class/:attachment/:id_partition/:style/:filename' 
Verwandte Themen