2016-08-09 147 views
0

Paperclip :: Fehler in RegistrationsController # update ist ein Fehler war, die Thumbnail-Verarbeitung.Büroklammer :: Fehler (Es gab einen Fehler bei der Verarbeitung der Thumbnail-

Ich laufe Rails 4.2.6

und paperclip", "~> 5.0.0"

Meine Anwendung Controller-Datei ist:

class NewsController < ApplicationController 
def create 
@news = News.new(news_params) 

    respond_to do |format| 
    if @news.save 
    format.html { redirect_to news_url, notice: 'News post was successfully created.' } 
    format.json { render :show, status: :created, location: @news } 
    else 
    format.html { render :new } 
    format.json { render json: @news.errors, status: :unprocessable_entity } 
    end 
    end 
end 

private 
def news_params 
    params.require(:news).permit(:topic, :header, :content, :link, :image) 
end 
end 

Meine Nachrichten Modell ist:

class News < ActiveRecord::Base 
    validates :image, presence: true 

    has_attached_file :image, styles: { thumb: "64x64#", small: "100x100#", med: "150x150#", large: "200x200# -adaptive-resize" }, default_url: "/images/:style/missing.png" 
    validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ 
end 

Und meine Datenbank-Migration für Büroklammer ist:

class AddAttachmentImageToNews < ActiveRecord::Migration 
    def self.up 
    change_table :news do |t| 
     t.attachment :image 
    end 
    end 

    def self.down 
    remove_attachment :news, :image 
    end 
end 

Datenbank-Schema:

ActiveRecord::Schema.define(version: 20160809173534) do 

    create_table "news", force: :cascade do |t| 
    t.string "topic",    limit: 255 
    t.string "header",    limit: 255 
    t.string "content",   limit: 255 
    t.string "link",    limit: 255 
    t.datetime "created_at",      null: false 
    t.datetime "updated_at",      null: false 
    t.string "image_file_name", limit: 255 
    t.string "image_content_type", limit: 255 
    t.integer "image_file_size", limit: 4 
    t.datetime "image_updated_at" 
    end 
end 

Als ich rake db:migrate dies und dann versuchen, es zu benutzen ich die Paperclip::Error in NewsController#createThere was an error processing the thumbnail for dfc9ea4994791a9884f662cfa4333da420160809-29993-12b0k3n bekommen.

Voll Fehler:

Started POST "/news" for 127.0.0.1 at 2016-08-09 13:47:40 -0400 
Processing by NewsController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"LQOcaS5Nfm63jIBRxjrDrjjrO/3yvKqdAgiwllPsyuZ2gQNbq4USbc+G5Nr6JuBqYZQdO6lFTHBdretDEk3Xrg==", "news"=>{"topic"=>"AutoCAD", "header"=>"News header 1", "content"=>"something should work eventually.", "link"=>"link here", "image"=>#<ActionDispatch::Http::UploadedFile:0x007fd568e25028 @tempfile=#<Tempfile:/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/RackMultipart20160809-47024-131c2mr.jpg>, @original_filename="blockhead.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"news[image]\"; filename=\"blockhead.jpg\"\r\nContent-Type: image/jpeg\r\n">}, "commit"=>"Create News"} 
    Linkpost Load (0.4ms) SELECT `linkposts`.* FROM `linkposts` ORDER BY title 
    Admin Load (0.3ms) SELECT `admins`.* FROM `admins` WHERE `admins`.`id` = 1 ORDER BY `admins`.`id` ASC LIMIT 1 
Command :: file -b --mime '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-yckinl.jpg' 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 2>/dev/null 
Command :: identify -format %m '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 
Command :: convert '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' -auto-orient -resize "x64" -crop "64x64+0+0" +repage '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/62af5247d7ae99288c3db01615055e6c20160809-47024-1vtevvl' 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 2>/dev/null 
Command :: identify -format %m '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 
Command :: convert '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' -auto-orient -resize "x100" -crop "100x100+0+0" +repage '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/62af5247d7ae99288c3db01615055e6c20160809-47024-1ndlv2i' 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 2>/dev/null 
Command :: identify -format %m '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 
Command :: convert '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' -auto-orient -resize "x150" -crop "150x150+0+0" +repage '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/62af5247d7ae99288c3db01615055e6c20160809-47024-1dpm4bl' 
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 2>/dev/null 
Command :: identify -format %m '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' 
Command :: convert '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a.jpg[0]' -auto-orient -resize "200x200#" '/var/folders/y5/brmnsb2n4f5_mkpmmn_ll_280000gn/T/62af5247d7ae99288c3db01615055e6c20160809-47024-q1w9zr' 
Completed 500 Internal Server Error in 815ms (ActiveRecord: 0.6ms) 

Paperclip::Error (There was an error processing the thumbnail for dfc9ea4994791a9884f662cfa4333da420160809-47024-t1m52a): 
    app/controllers/news_controller.rb:28:in `create' 

ich ein Attribut der Nachricht Klasse hatte zuvor Bild genannt, nicht sicher, ob das etwas vermasselt?

Es scheint, als wäre es ein Datenbankproblem, denn wenn ich einen Rake db: setup mache, funktioniert es gut. Aber ich möchte meine Datenbank nicht löschen, also ist das keine Option, da db:setup eine db:schema:load ausführt, löscht dies Daten auf dem Server.

Jede Hilfe oder Vorschläge wären willkommen. Vielen Dank.

+0

Können Sie dann das: Bild zu: Bild ändern und damit arbeiten? Aber ich schlage vor, nicht beide zu behalten. Nur vielleicht besser vorher entfernen: Bildspalte zuerst. Dann run rails Büroklammer News: Bild erneut. – loloso

+0

@loloso Ich werde das versuchen, danke. Wie soll ich das ': image' entfernen? Sollte ich mysql direkt im Terminal durchlaufen? Oder verwenden Sie eine Schienenmigration, um die Spalte zu entfernen (was ich noch nie getan habe, aber davon gehört habe)? – Corey

+0

Verwende rails g migration remove_image_from_news image: attachment (oder was auch immer das Bild war - check db schema), das eine Migration im Ordner db/migrate generiert. Überprüfen Sie, ob es sagt, entfernen Sie Spalte aus Nachrichten (es ist Nachrichten richtig?). Dann Rake db: migrieren. Überprüfen Sie dann das Schema, um sicherzustellen, dass die Nachrichtentabelle keine Bildspalte enthält. Dann führe den Büroklammergenerator aus, den ich oben habe. Ich schreibe jetzt so schwer ins Telefon, um Ihnen zu zeigen, wie genau die Migration aussieht, aber lassen Sie mich wissen, wenn Sie Probleme haben. – loloso

Antwort

0

Im news Modell geändert diese Zeile:

has_attached_file :image, styles: { thumb: "64x64#", small: "100x100#", med: "150x150#", large: "200x200# -adaptive-resize" }

Um dies:

has_attached_file :image, styles: { thumb: "64x64#", small: "100x100#", med: "150x150>", large: "200x200>" }

Ich vermute, die -adaptive-resize Verwirrungen Dinge, ich werde ein finden müssen verschiedene Möglichkeiten, das Bild zu skalieren, ohne es zu verzerren.