Rails:如何从上传显示图像

时间:2012-01-14 20:01:01

标签: 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

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

<%= image_tag painting.image_url%>

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

class User < ActiveRecord::Base

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

当我尝试这样做时

 <%= image_tag user.image_url %>

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

当我尝试这个时

<%= image_tag User.image_url %>

我为#Class获得undefined method image_url':0x0000010248e560&gt;`

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

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

这是上传图片的文件路径

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

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

1 个答案:

答案 0 :(得分:7)

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

<%= image_tag @user.image_url%>