我正在尝试跟随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)
答案 0 :(得分:7)
使用实例变量@user
而不是局部变量(未定义):
<%= image_tag @user.image_url%>