将字符串写入文件以供下载 Ruby on Rails
Posted
技术标签:
【中文标题】将字符串写入文件以供下载 Ruby on Rails【英文标题】:Writing string to file for download Ruby on Rails 【发布时间】:2022-01-12 18:13:31 【问题描述】:我正在构建一个进行大量 API 调用的应用程序。我希望能够将每个 API 调用的输出写入文件,然后能够下载该文件。到目前为止,这是我的控制器的样子:
def show
@resp = Faraday.get("https://my_api_endpoint")
end
如何将字符串写入文件并使用 Ruby on Rails 下载该文件?
【问题讨论】:
响应有多大?您只想下载响应一次还是多次?您是否需要确保以后只允许请求 API 请求的用户下载文件?您的服务器设置如何,您是否能够将文件存储在本地文件系统中,还是需要将其存储在其他位置(例如 S3 等) 【参考方案1】:你的问题太模糊了。
您可以这样写入文件:
File.write(Rails.root.join("PATH_TO_FILE.txt"), @resp.to_s, mode: "a")
但是您应该将文件附加到您的模型以便以后能够检索它,例如
has_one_attached :response_txt
【讨论】:
以上是关于将字符串写入文件以供下载 Ruby on Rails的主要内容,如果未能解决你的问题,请参考以下文章
Base64 编码的字符串到文件(Ruby on Rails) - 未定义的方法“解包”错误
/usr/bin/env ruby 没有这样的文件或目录:使用 capistrano 3、capistrano/rbenv、capistrano/bundler 和 capistrano/rail