우리는 avatar 업로드를 위해 carrierwave를 구현하는 사용자 모델을 가지고 있습니다.MongoMapper가없는 반송파는 업로드되지 않은 사용자에게 아무 것도 반환하지 않습니다.
사진을 업로드 한 사용자의 경우 모든 사항이 정상입니다. 그러나 그렇지 않은 경우에는 #photo 메서드를 호출 할 때 Nothing을 얻습니다. 빈 문자열이나 빈 문자열이 아니기 때문에 아무 것도 없습니다. 따라서이 때문에 색인을 생성하거나 여러 가지 작업을 수행 할 수 없습니다. 마치 돌아 오지 않는 것처럼 보입니다.
그런 생각을하는 방법에 대한 의견이 있으십니까? 내가 the documentation에 따르면 http://github.com/brandonhilkert/carrierwave-mongomapper
class User
mount_uploader :photo, PhotoUploader
...
end
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
storage :fog
process :resize_to_fit => [200, 200]
version :normal do
process :resize_to_fill => [100, 100]
end
version :thumb do
process :resize_to_fill => [50, 50]
end
def store_dir
"#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
irb(main):024:0> User.brandon.photo
=>
irb(main):025:0> User.brandon.photo.class
=> PhotoUploader
irb(main):026:0> User.chris.photo
=> https://[redacted]/IMG_1160_2_bigger.jpg
irb(main):027:0> User.chris.photo.class
=> PhotoUploader
아무 것도 얻을 수 없습니다. '''User.brandon.photo.class'''를 시도하여 실제로 반환 된 것을 찾으십시오. – Veraticus
위의 내용은 다음과 같습니다 : irb (main) : 025 : 0> User.brandon.photo.class => PhotoUploader – user577808
PhotoUploader 클래스에서 to_s가 아무것도 생성하지 않는 것과 같습니다 ... – user577808