【问题标题】:Getting Carrierwave working让 Carrierwave 工作
【发布时间】:2014-03-11 19:06:40
【问题描述】:

我尝试按照 Railscast #253 进行文件上传,然后是 Carrierwave github 站点上的一些自述文件,但我觉得我错过了一个关键的中间步骤。我是整个 Rails 的新手,我希望每个用户都有一张个人资料图片,或者我称之为“头像”。

在我的_form.html.erb 文件中,我有以下内容:

    <%= form_for(@user), :html => { :multipart => true } do |f| %>
      <%= image_tag(@user.avatar_url) if @user.avatar? %>
      <%= f.file_field :avatar %>
      <%= f.hidden_field :avatar_cache %>
    <% end %>

在我的show.html.erb 中,我有:

<%= image_tag user.avatar.url(:thumb) if @user.avatar? %>

我什至不确定这是否正确。

我的avatar_uploader.rb 几乎和我创建它时一样,

class AvatarUploader < CarrierWave::Uploader::Base

  include CarrierWave::RMagick

  storage :file

  def store_dir
    "/images/"
  end


  version :thumb do
    process :scale => [50, 50]
  end

  def extension_white_list
    %w(jpg jpeg png)
  end
end

我认为,在我的表单中,当我尝试上传它时,它会接受图像。它不会出现在图像文件夹或显示页面中。是否有什么我做错了,或者我应该做的额外的事情我错过了?我已经安装了 ImageMagick,并且我的 Gemfile 中包含了 RMagick,但它似乎也没有意识到这一点。

编辑: 我的user.rb 文件中也有mount_uploader :avatar, AvatarUploader

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 imagemagick carrierwave image-uploading


    【解决方案1】:

    包括

    mount_uploader :image,AvatarUploader
    

    在用户模型中

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • 我相信这可以解决他的问题。也许我可以以更好的方式呈现它
    • 我确实这样做了,我忘记发布了。但是因为它在我的表中被称为:avatar,所以我有mount_uploader :avatar, AvatarUploader。有错吗?
    • 不正确,在你的表格中你有&lt;%= image_tag(@user.avatar_url) if @user.avatar? %&gt;它用于显示图像,你没有form_for你是如何使用f.file_field的?你没有在你的问题中表明这一点?
    • "/images/ 你缺少结束引号还是打错字?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2010-09-27
    • 2016-04-29
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多