зависит от: уничтожить ошибку броска через Carrierwave - PullRequest
0 голосов
/ 14 апреля 2020

Я получаю следующую ошибку при уничтожении моей модели с прикрепленным к ней CarrierWaveUploader:

#<NoMethodError: undefined method 'id' for nil:NilClass>

Моя модель выглядит следующим образом: Parent> Child> Uploader:

class Parent < ApplicationRecord
  belongs_to :user
  has_many :children, dependent: :destroy
end

class Children < ApplicationRecord
  belongs_to :parent
  has_one :user, :through => :parent

  mount_base64_uploader :file, ChildUploader
end

И строка с ошибкой в ​​моем загрузчике выглядит следующим образом:

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{model.user.id}/#{mounted_as}/#{model.id}"
end

Я не хочу использовать сложный обходной путь. Кажется, что загрузчик не уничтожается должным образом и все еще пытается получить доступ к store_dir, когда родительский объект уже удален. Какой самый простой и чистый способ исправить это?

...