Rails:如何从上传显示图像

Lea*_*cim 6 ruby-on-rails image carrierwave

我正在尝试跟随Ryan Bates CarrierWave Rails Cast http://railscasts.com/episodes/253-carrierwave-file-uploads,但有些事情自从他成功以来似乎有所改变.

Ryan在绘画课上安装了载波

class Painting < ActiveRecord::Base
  attr_accessible :gallery_id, :name, :image
  mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)

然后显示他执行此操作的图像

<%= image_tag painting.image_url%>
Run Code Online (Sandbox Code Playgroud)

我假设CarrierWave提供了painting方法.我在User类上安装了Carrier Wave

class User < ActiveRecord::Base

    attr_accessible :name, :email, :image
    mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)

当我试图这样做

 <%= image_tag user.image_url %>
Run Code Online (Sandbox Code Playgroud)

我收到了一条"undefined local variable or method for 'user'"错误消息

当我试着这个

<%= image_tag User.image_url %>
Run Code Online (Sandbox Code Playgroud)

undefined method为#Class 获得了image_url':0x0000010248e560>`

后一个错误信息让我感到惊讶,因为当我这样做时,rake routes它向我展示了这个网址

image GET    /images/:id(.:format)      {:action=>"show", :controller=>"images"}
Run Code Online (Sandbox Code Playgroud)

这是上传图像的文件路径

/uploads/user/image/3/cadman.png
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何使用Rails方法显示它(即不仅仅是img src)

Mar*_*Huk 9

使用实例变量@user而不是局部变量(未定义):

<%= image_tag @user.image_url%>
Run Code Online (Sandbox Code Playgroud)