我正在尝试跟随 Ryan Bates CarrierWave Rails Cast http://railscasts.com/episodes/253-carrierwave-file-uploads ,但自从他做到了,有些事情似乎发生了变化。
瑞安在绘画课上安装载波
class Painting < ActiveRecord::Base
attr_accessible :gallery_id, :name, :image
mount_uploader :image, ImageUploader
end
然后显示图像他这样做
<%= image_tag painting.image_url%>
我假设 CarrierWave 提供了
painting
方法。我在 User 类上安装了 Carrier Waveclass 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 %>
我收到了
undefined method
image_url' for # Class:0x0000010248e560>`后一条错误消息让我感到惊讶,因为当我这样做时
rake routes
它向我展示了这个网址image GET /images/:id(.:format) {:action=>"show", :controller=>"images"}
这是上传图片的文件路径
/uploads/user/image/3/cadman.png
但我不知道如何使用 Rails 方法显示它(即不仅仅是 img src)
最佳答案
使用实例变量 @user
而不是局部变量(即未定义):
<%= image_tag @user.image_url%>
关于ruby-on-rails - rails : how to display image from upload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864957/