Dynamischer Einsatz :default_url in Büroklammer
Ich versuche zu konfigurieren, Büroklammer, um verschiedene fehlende Bilder auf der Basis der instance-Kategorie-Attribut. Jeder Kategorie, der das Objekt besitzt seine eigene fehlende Bild.
Dies ist meine erste nehmen:
BEARBEITEN, um hinzuzufügen vollständigen Modelle:
class Service < ActiveRecord::Base
attr_accessible :logo, :logo_file_name, :logo_content_type, :logo_file_size, :logo_updated_at
belongs_to :category, :counter_cache => true
has_attached_file :logo,
:path => "/:id-:style-:filename",
:url => ":s3_eu_url",
:default_url => "/logos/:style/#{self.category.name]}.png",
:styles => { :large => "600x400>",
:medium => "300x200>",
:small => "100x75>",
:thumb => "60x42>" }
end
class Category < ActiveRecord::Base
attr_accessible nil
has_many :services
end
Meiner Ansicht image_tag service.logo.url(:thumb)
Ausgänge:
undefined method `category' for #<Class:0x0000010a731620>
Irgendwelche Ideen?
EDIT2:
Einen funktionierenden default_url ist :default_url => "/logos/:style/missing.png",
LÖSUNG:
Siehe meine Antwort unten.
InformationsquelleAutor dgilperez | 2011-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe eine Lösung gefunden, folgende diese gist und diese andere Frage bei stackoverflow.
Meine funktionierende Lösung:
Und ein Initialisierer paperclip_default_url_fix.rb
InformationsquelleAutor dgilperez
Es ist eine schöne, saubere Lösung, die auf die Büroklammer wiki jetzt für :url, :Pfad, und :default_url die funktioniert ein Sauger.
https://github.com/thoughtbot/paperclip/wiki/Interpolations
InformationsquelleAutor newtriks
Können Sie ein Proc :default_url zur Büroklammer. Sehen https://github.com/thoughtbot/paperclip/blob/master/lib/paperclip/attachment.rb#L135. Büroklammer rufen, dass die Prozedur mit der Anlage-Objekt als parameter. Die Anlage-Objekt hat einen accessor 'Instanz' , ist die ActiveRecord-Objekt-Instanz, die es angefügt wurde. In Ihrem Fall sollten Sie haben:
InformationsquelleAutor bcd
Brauchen Sie nicht
self
:Starten Sie Ihren server neu und wenn das nicht funktioniert, aktualisieren Sie Ihre Frage mit dem vollständigen Modell für das eine und für der Kategorie.
Neustart funktioniert nicht ... entweder ich aktualisiert mit den einschlägigen teilen aus den Modellen. Danke für die Hilfe!
Können Sie auch aktualisieren Sie Ihre :default_url Linie zu dem, was es derzeit ist.
InformationsquelleAutor bricker