Я использую несущую для загрузки изображений в проект моих рельсов. Это мой класс uploader
.NoMethodError (undefined method `id 'for nil: NilClass): в модели CarrierWave
class ProfilePictureUploader < CarrierWave::Uploader::Base
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
Я не с помощью mount_uploader :avatar , ProfilePictureUploader
в моей model
. Вместо этого я использую это в моей модели
uploader = ProfilePictureUploader.new
uploader.store!(file)
self.image = uploader.url
self.save
Но это дает мне ошибку говоря
NoMethodError (неопределенный метод `идентификатор» для ноль: NilClass)
постижимо model
экземпляра не доступен в ProfilePictureUploader
. Таким образом, метод store_dir
не может получить доступ к model.id
. Как получить подобную структуру каталогов с этим потоком.
Это не дубликат this problem. Для меня атрибут model
uploader
недоступен.
Возможный дубликат [Carrierwave: хэш файла и модель идентификатор в имя файла/магазин \ _DIR] (http://stackoverflow.com/ вопросы/18460686/carrierwave-file-hash-and-model-id-in-filename-store-dir) –
Это не дубликат этого http://stackoverflow.com/questions/18460686/carrierwave-file-hash- и-model-id-in-filename-store-dir. Для меня атрибут модели загрузчика недоступен. – raj
Да, ты прав. –