Rails开发环境凭据已加密保存但调用返回Nil问题求助
Rails开发环境凭据保存后读取返回Nil的解决办法
问题场景
在WSL Ubuntu环境下执行EDITOR="code --wait" rails credentials:edit --environment=development,编辑临时YAML文件并保存到Windows的C:/tmp目录,终端提示"File encrypted and saved.",但调用Rails.application.credentials相关方法时全部返回Nil,且@config为空。
解决步骤
修正编辑器路径问题
WSL环境下用Windows版VS Code编辑时,临时文件会被保存到Windows的C:/tmp,而Rails在Linux环境下无法正确读取该路径的文件。改用WSL兼容的编辑器命令:# 用WSL模式的VS Code EDITOR="code --wait --remote=wsl" rails credentials:edit --environment=development # 或者用终端编辑器nano更稳妥 EDITOR="nano" rails credentials:edit --environment=development编辑完成后保存退出,确保终端提示加密成功。
验证加密文件内容
执行命令解密查看实际保存的内容,确认是否写入成功:rails credentials:show --environment=development如果返回空,说明之前的保存未生效,重新用正确的编辑器命令编辑。
检查YAML格式
确保YAML使用空格缩进(不要用制表符),格式严格匹配:test: my_key: "hello" another_key: "world"重启会话
保存凭据后,关闭并重新打开Rails控制台,或者重启开发服务器,确保新的配置被加载。
内容的提问来源于stack exchange,提问作者Bals
相关产品推荐
相关产品推荐

