【问题标题】:Writing a file in the rails console is not saving on exit在 Rails 控制台中写入文件不会在退出时保存
【发布时间】:2014-12-06 00:13:39
【问题描述】:

我有一个托管在 Heroku 上的 rails 应用程序。该应用程序的一部分涉及将一些数据写入 CSV,然后重命名文件

代码很简单,看起来像这样

CSV.open(file_path, "a") do |csv|
    csv << some_data
end

File.rename(file_path, new_file_path)

当我在 Rails 控制台中运行此代码时,文件被重命名,当我阅读它时,一切似乎都很好。但是,当我退出控制台时,更改不会持续存在。当我重新进入控制台时,文件已恢复到其原始状态。知道发生了什么吗?谢谢

【问题讨论】:

  • 尝试改用wb
  • 我不认为你可以在 Heroku 服务器上以你想要的方式编辑文件。我不明白 slug 是如何工作的,但基于此处的 heroku run bash 示例:devcenter.heroku.com/articles/one-off-dynos,该示例显示用户删除 Procfile 没有不良影响,我不确定文件更改是否具有持久影响。

标签: ruby-on-rails ruby file csv heroku


【解决方案1】:

Heroku 磁盘空间不用于存储。它特定于实例。任何文件操作都应针对 S3 等外部服务进行。

当您调用控制台时,您的应用程序实例正在启动。您正在写入文件系统。然后,当您退出控制台时,您正在使用的实例会蒸发。

然后,当您再次调用控制台并且您的文件不存在时,您将启动一个新实例,因为它被写入另一个不再存在的实例。

【讨论】:

  • 谢谢!这似乎可以做到。
猜你喜欢
  • 2020-04-10
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 2023-02-01
  • 2015-03-24
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多