如何通过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 6:通过网络抓取控制器操作创建帖子时如何将用户与创建的帖子相关联