ActionView :: Template :: Error (неопределенный метод `имя файла 'для nil: NilClass): - PullRequest
0 голосов
/ 07 мая 2019

Я использую рельсы Active storage для добавления вложений в мою модель назначений, и она продолжает выдавать вышеуказанную ошибку

Ранее я использовал самоцвет для несущей, но вместо этого решил использовать Active Storage. Мне нужны представления, чтобы показать файл и имя, но ошибка продолжает отображаться. Когда я закомментирую эту строку, представления назначений работают, но не могут отображаться как изображения, даже если файлы представляют собой слово, документ в формате PDF или Excel.

  <% if @assignment.attachments.attached? %>
   <p>
    <strong>Attachments</strong><br>
    <% @assignment.attachments.each do |attachment| %>
    <%= image_tag url_for(@assignment.attachment) %>
    <%= link_to rails_blob_path(@assignment.attachment.filename, 
    disposition: "attachment") %>

  <% end %>
   </p>

Модель для заданий

    class Assignment < ApplicationRecord
     has_many_attached :attachments
    end

В контроллере для заданий я разрешил вложения в параметрах следующим образом

       attachments: []

1 Ответ

0 голосов
/ 07 мая 2019

Внутри цикла .each каждая запись вложения будет называться attachment, а не @assignment.attachment.В случае ошибки @assignment.attachment - ноль.

Обновите ваш код, добавив следующие две строки:

<%= image_tag url_for(attachment) %> <%= link_to rails_blob_path(attachment.filename, disposition: "attachment") %>

...