2016-08-06 161 views
0

我试图让一个个人资料图片显示给用户没有运气。我已经将宝石与mini_magick一起安装在gem文件中。Ruby on Rails image_tag不显示图像Carrierwave

图片上传

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)%> 

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

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 

回答

0

哇,我们这里有多好的社区!非常有帮助!其实我不得不去reddit得到该死的答案。我相信未来会有人会遇到同样的问题,不幸的是我会先看看这个网站的答案。我的工作是为我安装imagemagick如果你使用的是Mac,并且已经安装了自制软件,那么它就像brew install imagemagick一样简单。重新启动你的服务器,它应该工作。