You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用--wait参数后Rails credentials仍立即加密保存?

Rails Credentials编辑问题:编辑器立即关闭并加密保存的解决方法

问题现象

执行EDITOR="subl --wait" bin/rails credentials:edit后,Sublime会打开credentials文件,但Rails立即执行加密保存,没有编辑时间;同时设置其他编辑器(如nano、vim)时,始终默认打开Sublime,环境变量EDITOR的临时设置无效。

原因分析

  1. 全局EDITOR环境变量优先级更高:系统已全局设置EDITOR=subl,导致命令行临时设置的EDITOR参数被覆盖。
  2. Sublime的--wait参数未生效:部分Sublime版本中--wait参数无法让Rails等待编辑器关闭,导致Rails误判编辑完成。

解决步骤

1. 强制临时覆盖全局环境变量

如果全局EDITOR设置导致临时参数无效,可通过env命令强制指定:

env EDITOR="subl --wait" bin/rails credentials:edit

或者先取消全局变量再执行:

unset EDITOR && EDITOR="subl --wait" bin/rails credentials:edit

2. 验证并修复--wait参数

测试Sublime的--wait是否正常工作:

EDITOR="subl --wait" touch test.txt && echo "编辑完成后关闭Sublime才会显示此行"

如果命令立即输出内容,说明--wait无效,尝试用短参数-w替代:

EDITOR="subl -w" bin/rails credentials:edit

3. 修改全局EDITOR设置(彻底解决)

打开你的Shell配置文件(~/.bashrc或~/.zshrc),查找是否有如下行:

export EDITOR="subl"
  • 若想默认使用其他编辑器,修改为对应路径(如export EDITOR="vim");
  • 若想保留临时设置的灵活性,直接注释掉该行。
    修改后执行以下命令生效:
source ~/.bashrc  # 针对bash用户
# 或
source ~/.zshrc   # 针对zsh用户

4. 指定编辑器绝对路径

若环境变量解析有问题,直接使用编辑器的绝对路径:

# 使用Sublime
EDITOR="/usr/local/bin/subl --wait" bin/rails credentials:edit
# 使用Vim
EDITOR="/usr/bin/vim" bin/rails credentials:edit

5. 清理Rails临时缓存

如果Rails缓存了编辑器设置,尝试删除临时目录:

rm -rf tmp/

然后重新执行编辑命令。

内容的提问来源于stack exchange,提问作者user3574603

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:34:55