gpt4 book ai didi

ruby-on-rails - 是否可以使用 URL 在另一个应用程序中显示来自 rails 事件存储的图像?

转载 作者:行者123 更新时间:2023-12-03 12:32:42 24 4
gpt4 key购买 nike

我正在尝试使用事件存储从 Rails API/后端访问用户头像对象,并使用 <img> 在 Electron 桌面应用程序中显示它。标签。我一直在图像标签的 src 属性中尝试各种 URL 格式组合,但总是遇到 rails 路由错误。
我试过使用 key ,以及 attached_sgid rails 中的字段具有以下 URL 格式,但两种方法都不起作用。

http://localhost:3000/rails/active_storage/blobs/--active_storage_blobs.key--
http://localhost:3000/rails/active_storage/blobs/--attached_sgid--


Gives this error:

No route matches [GET] "/rails/active_storage/blobs/BAh7CEkiCGdpZAY6BkVUSSIqZ2lkOi8vanVtcHN0YXJ0LWFwcC9Vc2VyLzE_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiD2F0dGFjaGFibGUGOwBUSSIPZXhwaXJlc19hdAY7AFQw--2465471c08be19196738d37c7f02be10c4a88bba"
甚至可以以这种方式显示来自事件存储的图像吗?

最佳答案

我相信你应该从你的后端 API 返回准备好使用的 URL,而不是在你的 Electron 应用程序上构建 URL。
您可以使用以下方法从您的模型中找到正确的 url:

url_for(user.avatar)
有一些选项可以退货。如果你不介意让你的模型有点脏,你可以创建一个名为 avatar_url 的方法。然后用你的 json 返回这个值。
# new method on model
def avatar_url
Rails.application.routes.url_helpers.url_for(avatar)
end

# on controller controller
def show
user = User.find(params[:id])
render json: user, methods: [:avatar_url]
end
更简洁的选择是创建 jbuilder为您构建 json,并在此处添加 url:
# create new jbuilder file app/view/users/show.json.jbuilder
json.id @user.id
json.avatar_url url_for(@user.avatar) if post.avatar.attached?

# on controller controller
def show
@user = User.find(params[:id])
respond_to do |format|
format.json
end
end

关于ruby-on-rails - 是否可以使用 URL 在另一个应用程序中显示来自 rails 事件存储的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64199761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com