2017-12-05 5 views
0

In user.rb arbeiten

class User < ApplicationRecord mount_uploader: Bild, PictureUploader EndeCarrierWave nicht mit Cloudinary

In picture_uploader.rb

Klasse PictureUploader < CarrierWave :: Uploader :: Base

einschließlich Cloudinary :: CarrierWave

Lagerung: Dies ist ein vernünftiger Standard

# Datei für Uploader, die montiert werden sollen:

def store_dir „uploads/# {model.class.to_s.underscore}/# {mounted_as}/# {model.id}“ Ende

Ende

In environement.rb

require_relative 'Anwendung'

initialisieren Sie die Rails-Anwendung

Rails.application.initialize!

require 'carrierwave/ORM/active'

In _form.html.erb

<%= form.label :picture %> 

<%= form.file_field :picture, id: :user_picture %> 

In Migration

Klasse create < Active :: Migration [5.1]

def change

create_table: Benutzer tun | t |

t.string :email 

    t.string :picture 

    t.timestamps 

end 

Ende

Ende

Schließlich User.picture_url ist eine URL auf Cloudinary aber es ist nicht in dieser URL hochgeladenes Bild.

Und es funktioniert, wenn ich Schienen c eingeben Cloudinary :: Uploader.upload ('/ home/my_image.jpg ')

Antwort

0

Haben Sie in Ihrem app/assets/javascript/application.js

hinzugefügt
//= require cloudinary/jquery.cloudinary 

und in app/views/layouts/application.html.erb

<%= yield(:after_js) %> 
    <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> 
    <%= cloudinary_js_config %> 

Und in application.yml (Sie verkaufen in Ihrem cloudinary Einstellungen finden)

CLOUDINARY_URL: "cloudinary:/`/768932967533141:[email protected]" 
#this a fake url ;-) 

Dein Problem ist mehr in deiner show.html.erb :)

<%= cl_image_tag(@user.picture.path, :secure => true, 
        :width => 100, :height => 150, :crop => :fill) %> 

Die Einstellung hier ist nur ein exemple, aber Sie müssen @user.picture.path Ihr Bild angezeigt werden :)

Mehr Infos hier https://cloudinary.com/documentation/rails_image_manipulation

0

Die anwser der Cloudinary hot line:

„Bitte kommentieren Sie Zeilen 10 und 15-17 "in /app/uploader/pictures_uploader.rb

# Speicher: Datei

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

Und es funktioniert.