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#create
There 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
, это удалит данные на сервере.
Любая помощь или предложения будут оценены. Благодарю.
Вы можете изменить: изображение, чтобы: картинка и работа с этим? Но я предлагаю не держать оба. Возможно, лучше сначала удалить предыдущий: столбец изображения. Затем запустите рельсы paperclip news: image again. – loloso
@loloso Я попробую, спасибо. Как я должен удалить удаление образа: image? Должен ли я проходить через mysql непосредственно в терминале? Или используйте миграцию рельсов, чтобы удалить столбец (который я никогда не делал, но слышал о)? – Corey
Используйте rails g migration remove_image_from_news image: вложение (или что-то вроде изображения -check db schema), которое будет генерировать миграцию в папке db/migrate. Убедитесь, что он говорит, что удалить столбец из новостей (это правильно?). Затем rake db: migrate. Затем проверьте схему, чтобы таблица новостей не имела столбца изображения. Затем запустите генератор скрепки, который у меня выше. Написание телефона теперь так сложно показать вам, как выглядит миграция, но дайте мне знать, если у вас есть проблемы. – loloso