2016-08-09 4 views
0

Paperclip :: Ошибка в RegistrationsController обновления # Существовала ошибка обработки миниатюры.Paperclip :: Ошибка (Была ошибку при обработке миниатюры

Я бег Rails 4.2.6

и paperclip", "~> 5.0.0"

Мой файл контроллер Приложение:

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 

Мои новости модель:

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 

И моя миграция базы данных для скрепки является: Схема

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 

База данных:

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 

rake db:migrate Когда я это, а затем попытаться использовать его я получаю Paperclip::Error in NewsController#createThere was an error processing the thumbnail for dfc9ea4994791a9884f662cfa4333da420160809-29993-12b0k3n.

Полная ошибка:

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' 

Я ранее атрибутом класса новостей называется изображение, не уверен, что портит что-нибудь вверх?

Кажется, что это проблема с базой данных, поскольку, если я делаю рейк-дБ: настройка работает нормально. Но я не хочу стереть свою базу данных, так что это не вариант, так как db:setup запускает db:schema:load, это удалит данные на сервере.

Любая помощь или предложения будут оценены. Благодарю.

+0

Вы можете изменить: изображение, чтобы: картинка и работа с этим? Но я предлагаю не держать оба. Возможно, лучше сначала удалить предыдущий: столбец изображения. Затем запустите рельсы paperclip news: image again. – loloso

+0

@loloso Я попробую, спасибо. Как я должен удалить удаление образа: image? Должен ли я проходить через mysql непосредственно в терминале? Или используйте миграцию рельсов, чтобы удалить столбец (который я никогда не делал, но слышал о)? – Corey

+0

Используйте rails g migration remove_image_from_news image: вложение (или что-то вроде изображения -check db schema), которое будет генерировать миграцию в папке db/migrate. Убедитесь, что он говорит, что удалить столбец из новостей (это правильно?). Затем rake db: migrate. Затем проверьте схему, чтобы таблица новостей не имела столбца изображения. Затем запустите генератор скрепки, который у меня выше. Написание телефона теперь так сложно показать вам, как выглядит миграция, но дайте мне знать, если у вас есть проблемы. – loloso

ответ

0

В news модели изменили эту строку:

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

Для этого:

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

Я угадывание -adaptive-resize Messes вещи, я должен найти другой способ изменения размера изображения, не искажая его.

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