ActionView::Template::Error(nil:NilClass 的未定义方法“文件名”):
ActionView::Template::Error (undefined method `filename' for nil:NilClass):
我正在使用 rails Active storage 将附件添加到我的分配模型中,但它不断抛出上述错误
我之前使用过 carrierwave gem 但决定改用 Active Storage。我需要视图来显示文件和名称,但错误不断显示。
当我注释掉该行时,作业视图有效但不能作为图像,即使文件是 word 或 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: []
在 .each
循环中,每个附件条目将被称为 attachment
而不是 @assignment.attachment
。在错误的情况下,@assignment.attachment
为零。
更新您的代码以包含以下两行:
<%= image_tag url_for(attachment) %>
<%= link_to rails_blob_path(attachment.filename, disposition: "attachment") %>
我正在使用 rails Active storage 将附件添加到我的分配模型中,但它不断抛出上述错误
我之前使用过 carrierwave gem 但决定改用 Active Storage。我需要视图来显示文件和名称,但错误不断显示。 当我注释掉该行时,作业视图有效但不能作为图像,即使文件是 word 或 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: []
在 .each
循环中,每个附件条目将被称为 attachment
而不是 @assignment.attachment
。在错误的情况下,@assignment.attachment
为零。
更新您的代码以包含以下两行:
<%= image_tag url_for(attachment) %>
<%= link_to rails_blob_path(attachment.filename, disposition: "attachment") %>