如何在Rails应用程序中返回指向附件(图片)的活动存储URL?

问题描述 投票:0回答:1

我正在开发一个应用程序,用户可以在其中创建和更新其个人资料图片。我遇到的问题是,当用户从移动设备创建其个人资料图片时,活动存储会成功为该图像创建附件和Blob。但是,当用户想要更新其个人资料图像时,将清除旧的附件,但从S3服务返回的URL会指向空白图像(又称空白图像)(即白屏)。 sample code showing the update action for the profile picture

我正在使用url_for辅助程序来生成附件的URL。我不确定这是否是正确的辅助方法。主要问题发生在更新用户个人资料图片时,而不是在用户创建其个人资料图片时。

ruby-on-rails json ruby ruby-on-rails-5 rails-activestorage
1个回答
0
投票

对于S3上的图像,我将其用于我的应用程序。您将需要更改@变量以匹配您正在使用的变量,然后使用您正在使用的字段,我根据您的问题进行了最佳猜测。始终发布您正在使用的代码会更容易,因此我们可以提供更好的反馈

<%= @user.profile_picture.service_url %>

您会注意到,这在本地不起作用,因此,如果在开发期间同时使用这两种方法来使用像这样的东西很重要。

<%= Rails.env == 'production' ? @user.profile_picture.service_url : url_for(@user.profile_picture) if @user.profile_picture.attached? %>

将为您提供图像的路径,然后使用它,例如,如果它是背景图像,则使用它

<div style='background-image:url("<%= Rails.env == 'production' ? @user.profile_picture.service_url : url_for(@user.profile_picture) if @user.profile_picture.attached? %>");'>
© www.soinside.com 2019 - 2024. All rights reserved.