Я работаю с вложенными файлами в моем приложении на Rails с помощью Attachment_fu, который предоставляет метод public_filename
для получения URL-адреса файла.
Я использую его на модели с названием Cover, поэтому, если я хочу вызвать URL загруженного изображения обложки, в представлении я бы сделал:
<%= image_tag(@cover.public_filename) %>
Это прекрасно работает, когда у пользователя есть соответствующее вложение, но в моем приложении пользователь не обязан загружать вложение.
Следовательно, вызов @cover.public_filename
вызовет ошибку TypeError: Невозможно преобразовать nil в String по очевидной причине, что файл равен nil.
Однако у меня возникают проблемы с эффективным добавлением логики к этой проблеме, поскольку объект равен нулю, и все мои попытки выполнить такие действия, как unless @cover.public_filename.nil?
или if @cover.public_filename == nil
, оказались бесплодными и вызывают ту же ошибку типа. *
Чего мне не хватает?