반송파를 사용하여 이미지의 크기를 가져 오려고했지만 직접 작성한 코드를 사용하여 빠른 이미지 after_save
또는 after commit
을 실행하려고 시도했습니다. 이 오류를 얻을 :반송파를 사용하여 업로드 한 이미지의 실제 크기 가져 오기
wrong number of arguments (1 for 0)
Extracted source (around line #45):
# [String] contents of the file
#
def read
file.read if file.respond_to?(:read)
end
carrierwave (0.11.2) lib/carrierwave/uploader/proxy.rb:45:in `read'
fastimage (2.1.0) lib/fastimage.rb:343:in `block in fetch_using_read'
모델이 내 시스템에 단지 로컬 파일이
class Micropost < ApplicationRecord
after_save :change_picture_dimensions
mount_uploader :picture, PictureUploader
def change_picture_dimensions
if :picture?
widthheight = FastImage.size(picture)
if widthheight[0] >= 501
newheightratio = widthheight[1].to_f/widthheight[0].to_f
newheight = newheightratio * 500
self.picture = "<img src=\"" + picture.to_s + "\" width=\"500\" height=\"" + newheight.to_s + "\">"
else
self.picture = "<img src=\"" + picture.to_s + "\" width=\"" + widthheight[0].to_s + "\" height=\"" + widthheight[1].to_s + "\">"
end
end
end
처럼 보일 것입니다. minimagick here을 사용하여 치수를 구할 수 있지만 carrierwave의 프로세스에 대해 더 알고 싶습니다. 왜이 오류의 치수 원인을 얻기 위해 내 방법을 사용할 수 없습니까? 내 방법에서는 가로 세로 비율을 유지하기 위해 비율을 사용하고 있지만 어떤 이미지에 대해서도 div의 고정 너비에 맞출 수 있습니다.
EDIT : 개체가 저장되기 전에해야 할 것을 알았지 만 before_create를 사용하더라도 동일한 오류가 발생합니다.
를 감지하기 때문에 내 생각 중복 될 것인가? –
사진은 내 로컬 파일 시스템에서 내 필드에서 들어오는 .jpg입니다. 내가 가지고있는 문제는 Fastimage가 다른 서버에서 URL의 차원을 가져올 수 있으며 locallly 저장된 파일에서 해당 파일을 가져올 수 있다고 확신하지만 내 로컬 시스템에서 파일을 가져올 때 이해할 수 없습니다. 그것을 액세스하는 방법을 알아. –