2017-10-17 2 views
1

Ich kann Shrine nicht funktionieren, egal was ich tue und ich verwende die einfachsten Setups, um damit zu beginnen.NameError: nicht initialisierte Konstante Plaqueorder :: ShrineImageUploader bei Verwendung von Shrine 2.8 auf Rails 5.1.4

db/schema.rb

create_table "plaqueorders", force: :cascade do |t| 
    ... 
    t.text "image_data" 
    ... 

Initialisierungen/shrine.rb

require 'shrine' 
require 'shrine/storage/file_system' 

Shrine.storages = { 
cache: Shrine::Storage::FileSystem.new('public', prefix: 'uploads/cache'), 
store: Shrine::Storage::FileSystem.new('public', prefix: 'uploads/store'), 
} 

Shrine.plugin :activerecord 
Shrine.plugin :cached_attachment_data # for forms 

uploaders/image_uploader.rb

class ShrineImageUploader < Shrine 
end 

Modelle/plaqueorder.rb

class Plaqueorder < ApplicationRecord 
    belongs_to :user 
    validates :plaque_type, presence: true 
    include ShrineImageUploader[:image] 
end 
+1

Welp, um zu beginnen, scheint 'image_uploader.rb'' ShrineImageUploader' zu definieren. Ich würde denken, die Datei würde "shrine_image_uploader.rb" heißen oder die Klasse würde "ImageUploader" heißen. Andernfalls haben Sie eine Benennungskonflikt. – jvillian

+0

gut, mein Gesicht ist rot ... starrte den ganzen Morgen und das Offensichtliche war direkt vor mir :) –

+0

Passiert das Beste. Ich habe als Antwort hinzugefügt, falls Sie das Angebot positiv bewerten möchten. – jvillian

Antwort

2

Welp, mit zu beginnen, scheint es image_uploader.rbShrineImageUploader definiert. Ich würde denken, dass die Datei shrine_image_uploader.rb heißen würde oder die Klasse ImageUploader heißen würde.

Andernfalls haben Sie eine Benennungskonflikt.

Verwandte Themen