Schienen: how to display image from upload

Ich versuche zu Folgen zusammen mit Ryan Bates CarrierWave Schienen Cast http://railscasts.com/episodes/253-carrierwave-file-uploads, aber einige Dinge haben sich zu verändern schien, da er es machte.

Ryan installiert Trägerwelle auf die Malerei-Klasse

class Painting < ActiveRecord::Base
  attr_accessible :gallery_id, :name, :image
  mount_uploader :image, ImageUploader
end

und dann, um das Bild anzuzeigen, er tut dies

<%= image_tag painting.image_url%>

Ich gehe davon aus, dass CarrierWave bietet die painting Methode. Ich installierte Trägerwelle auf der User-Klasse

class User < ActiveRecord::Base

    attr_accessible :name, :email, :image
    mount_uploader :image, ImageUploader
end

Als ich versuchte, dies zu tun

 <%= image_tag user.image_url %>

Bekam ich eine "undefined local variable or method for 'user'" Fehlermeldung

Als ich versuchte, diese

<%= image_tag User.image_url %>

Bekam ich undefined methodImage: URL' in # Klasse:0x0000010248e560>`

Diese letztere Fehlermeldung überrascht mich, denn wenn ich rake routes es zeigte mir diese url

image GET    /images/:id(.:format)      {:action=>"show", :controller=>"images"}

Dies ist der Pfad zum hochgeladenen Bild

/uploads/user/image/3/cadman.png

aber ich kann nicht herausfinden, wie angezeigt, mithilfe einer Rails-Methode (d.h. nicht nur img-src)

  • hast du die user-variable ein neues Benutzer-Objekt? Ich weiß, das scheint offensichtlich, aber man weiß ja nie.
  • Schienen Gerüst gilt es in der neuen Methode @user = User.neue
  • Natürlich, nur die überprüfung, dass Sie an diesem Schritt.
  • kein prob, einfach so, dass ich fortsetzen kann, wollen Sie zumindest wissen, wie ich konnte, ein Bild anzuzeigen, das diese Datei wird im Pfad: /uploads/user/image/3/cadman.png
  • Sie konnte nur schreiben Sie das image-tag <img src="uploads/user/image/3/cadman.png">Bild</img>
  • ja, sorry, das wusste ich, ich meinte mit den Schienen Weg mit image_tag
  • Angenommen, Sie versucht <%= image_tag @user.image_url%>?
  • ja das hat es, danke
  • Bitte senden Sie als Antwort, damit Michael es akzeptieren können
  • danke.

InformationsquelleAutor Leahcim | 2012-01-14
Schreibe einen Kommentar