Ruby Rails image_tag 不显示图像 Carrierwave

Ruby on Rails image_tag not displaying the image Carrierwave

我正在尝试获取个人资料图片以显示给用户,但没有成功。我在 gem 文件中安装了 carrierwave gem 以及 mini_magick

图片上传者

class AvatarUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :thumb do
   process :resize_to_fit => [80, 80]
  end

  def extension_white_list
     %w(jpg jpeg gif png)
   end

user.rb

class User < ActiveRecord::Base
  ...

  mount_uploader :avatar, AvatarUploader
end

show.html.erb

...

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

<%= link_to "Edit", edit_user_path(@user)%> 

控制器(正在显示警报,而不是图像)

def update 
        if @user.update(user_params)
            redirect_to @user 
        else 
            flash.now[:alert] = "Something went wrong. Please try again."
            render :edit 
        end
    end

    private 

    def check_authorization
        unless current_user.id == params[:id].to_i
            redirect_to root_url 
        end 
    end

    def set_user 
        @user = User.find(params[:id])
    end

    def user_params 
        params.require(:user).permit(:username, :avatar)
    end
end

哇,我们这里的社区真棒!很有帮助!实际上,我必须去 reddit 才能得到该死的答案。我敢肯定,将来会有人遇到我遇到的同样问题,不幸的是,他们会先到这个网站寻找答案。对我有用的是安装 imagemagick 如果您使用的是 Mac,并且安装了自制程序,就像 brew install imagemagick 一样简单。重新启动服务器,它应该可以工作。