Rails: неопределенный метод Signed ID для # <ActiveStorage :: Attached :: Many: casualID> - PullRequest
0 голосов
/ 28 августа 2018

Я на Ruby 2.4.1-rc2 и Rails 5.2.1, и я использую активное хранилище. Загрузка файла идеальна, но когда я пытаюсь вспомнить URL загрузки файла с rails_blob_path(user.avatar, disposition: "attachment", only_path: true) или Rails.application.routes.url_helpers.rails_blob_path(c.allegati, only_path: true), выдается следующее сообщение:

NoMethodError at /profilepage
undefined method `signed_id' for #<ActiveStorage::Attached::Many:0x00007f85c90dd170>

0x00007f85c90dd170 изменяется каждый раз, когда я перезагружаюсь.

Я искал здесь и в Google, но ни у кого нет этой проблемы, моя конфигурация ActiveStorage - это стандартная конфигурация (за исключением учетных данных S3).

Есть идеи? Заранее спасибо.

Редактировать: больше код

show.html.erb

  <% if @utente.sostitutore == "1" %>
  <h1 class="title is-3">Sostituzioni accettate</h1>
  <% b = Sostituzione.where(sostitutore: utente_corrente.id) %>
  <% if b.empty? %>
  <p>
  Nessuna sostituzione accettata
  </p>
  <br />
  <% else %>
        <% b.each do |c| %>
            <%= Rails.application.routes.url_helpers.rails_blob_path(c.allegati, only_path: true) %>

  <% end %>
  <% end %>
  <% end %>

модель

class Sostituzione < ApplicationRecord
   attr_accessor :termini
   has_many_attached :allegati
   has_many_attached :documentiudienza
end

Edit2 : он возвращается через пустой отладочный файл, несмотря на то, что загружается правильно.

решаемые

1 Ответ

0 голосов
/ 29 августа 2018

Решено! Для нескольких вложений (аллегати на итальянском языке) есть @ sostituzione.allegati.first и т. Д. Я решил с этим кодом:

<% @sostituzione.allegati.each do |allegato| %>
<div class="level">
  <%= link_to 'Scarica documento allegato', rails_blob_path(allegato, only_path: true), class: 'button is-primary is-big' %>
</div>
<% end %>
...