【问题标题】:Ruby on Rails image_tag not displaying the image CarrierwaveRuby on Rails image_tag 不显示图像 Carrierwave
【发布时间】:2016-08-08 07:43:24
【问题描述】:

我试图获取个人资料图片以显示给用户,但没有运气。我已经在 gemfile 中安装了 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

用户.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

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-09-02
      • 2013-06-16
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2013-09-09
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多