2016-08-06 6 views
0

Im пытается получить изображение профиля для отображения для пользователей, которым не повезло. Ive установил жемчужину carrierwave в gemfile вместе с mini_magick.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. Перезагрузите сервер, и он должен работать.

Смежные вопросы