【问题标题】:Rails: how to display image from uploadRails:如何显示上传的图像
【发布时间】: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


【解决方案1】:

使用实例变量@user代替局部变量(即未定义):

<%= image_tag @user.image_url%>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2011-10-20
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多