ActiveStorage中的文件未显示并显示“缺少模板”错误

时间:2018-12-03 17:55:05

标签: ruby-on-rails rails-activestorage

Rails v5.2.1;使用DirectUpload将文件上传到私有AWS存储桶,但是我不认为这是我的问题。

我有一个包含has_one_attached :avatar的用户模型。图像上传没有问题;我在存储桶和数据库的ActiveStorage表中看到了它。

我稍后尝试显示上传的头像,如下所示:

<%= image_tag url_for(current_user.avatar) %>
(I've also tried this):
<img src="<%= url_for(current_user.avatar) -%>" />

这会生成一个URL,类似于http://localhost:3000/rails/active_storage/blobs/[a hash, I assume]/[my file name].png

但是...没有图像显示。如果尝试在新标签页中打开图像,则会显示“模板丢失”错误页面。

Missing template /application with {:locale=>[:en], :formats=>[:png], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}. Searched in: * "/Users/matt/projects/project/app/views" * "/Users/matt/.rvm/gems/ruby-2.5.1/gems/kaminari-core-1.1.1/app/views" * "/Users/matt/.rvm/gems/ruby-2.5.1/gems/devise-4.4.3/app/views"

Extracted source:

def index
  render template: 'application'
end

现在...我肯定有一个application.html模板,但这似乎是在寻找一个application.png模板,这似乎不正确。我想念什么?

1 个答案:

答案 0 :(得分:1)

查看

str(b).split('.')[0]

用户模型

<%= image_tag url_for(current_user.avatar_url) %>