如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?相关的知识,希望对你有一定的参考价值。

我正在将我的Rails应用程序部署到Digital Ocean。

我需要通过Rails控制台(甚至在作业队列中)运行自定义ruby脚本,在某些情况下,我希望它创建一个文件并将其存储在我的config目录中。

具体来说,这就是设置的样子:

Money.default_bank = MoneyOXR::Bank.new(
  app_id: ENV["APP_ID"],
  cache_path: 'config/oxr.json',
  max_age: 86400
)

所以,需要发生的是,只要它运行它需要创建config/oxr.json

但是,当我运行它时,会发生这种情况:

Errno::EACCES: Permission denied @ rb_sysopen - config/oxr.json

现在,我只是在Rails控制台的命令行中以MyScript.run的身份运行它。

我该怎么做呢?

答案

您需要为create/write提供必要的文件夹权限。你可以这样做:

chmod -R g + w app_path / config

这为app config文件夹提供了写入权限。

如果您想为某个用户授予权限,那么:

=> w || who; #list all of the currently logged in users
=> chgrp -R user_name app_path/config
=> chmod -R g+w app_path/config

由OP编辑

什么也有效:sudo chmod 777 oxr.json

以上是关于如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Digital Ocean 的源代码控制中包含 nginx 和 gunicorn 配置文件?

如何使用带有 has_many 的 PaperTrail 版本控制:通过在 Rails 4 中实现关联

Rails如何不通过控制器提供文件下载?

Rails 6:通过网络抓取控制器操作创建帖子时如何将用户与创建的帖子相关联

如何在 ruby​​ on rails 中获取控制器和操作列表?

了解 Rails 控制器 - 通过关联模型的实例变量查看连接