如何获取存储在 Rails 控制器的活动存储中的 has_one 模型附件的 URL。因此,我可以将其作为完整链接作为 json 中的 api 发送。
到目前为止,我已经尝试过以下方法,但每个方法都给出了不同的问题:
current_user.image.service_url
---- #<:attached::one:0x...>
-
Rails.application.routes.url_helpers.rails_disk_blob_path(current_user.image, only_path: true)
,它给了我这样的输出:
“/rails/blob/%23%3CActiveStorage::附加::一:0x007f991c7b41b8%3E”
但这不是一个网址,对吧?我无法在浏览器上点击并获取图像。
-
url_for
----
#<:v1::userscontroller:0x007f991c1eaa98>
使用方法rails_blob_path
用于控制器和模型中的附件
例如,如果您需要分配一个变量(例如cover_url
)在控制器中,首先你应该包括url_helpers
以及使用后方法rails_blob_path
带有一些参数。你可以在任何模型、工人等中做同样的事情。
完整示例如下:
class ApplicationController < ActionController::Base
include Rails.application.routes.url_helpers
def index
@event = Event.first
cover_url = rails_blob_path(@event.cover, disposition: "attachment", only_path: true)
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)