【发布时间】:2023-03-25 15:10:01
【问题描述】:
我正在尝试跟随 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:0x0000010248e560>`
后一条错误消息让我感到惊讶,因为当我执行rake routes 时,它显示了这个网址
image GET /images/:id(.:format) {:action=>"show", :controller=>"images"}
这是上传图片的文件路径
/uploads/user/image/3/cadman.png
但我不知道如何使用 Rails 方法显示它(即不仅仅是 img src)
【问题讨论】:
-
您是否使您的用户变量成为新的用户对象?我知道这似乎很明显,但你永远不知道。
-
Rails 脚手架在新方法 @user = User.new 中做到这一点
-
当然,只是检查你是否做了那一步。
-
没有问题,只是为了让我可以继续,你至少知道我如何在这个文件路径显示图像:/uploads/user/image/3/cadman.png
-
你可以只写图片标签 图片
标签: ruby-on-rails image carrierwave