我正在尝试创建我的第一个 Rails 应用程序模板,但该copy_file
方法遇到了一个小问题。
首先是一些背景知识.... 显然 Ruby OpenSSL 包没有附带 CA 存储,因此任何连接到 HTTPS 服务的尝试都将失败。解决这个问题的方法(对于 Rails 3 应用程序)是将行添加OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
到文件的顶部config/environment.rb
。我需要在我的模板中即时执行此操作,以便安装 jQuery。
所以我已经弄清楚了,我的一般想法是:
- 备份我的
config/environment.rb
文件。 - 将数据添加到原始数据
- 运行
jquery:install --ui
任务 - 恢复原始
config/environment.rb
文件。
请参阅我的模板 Gist,第 25..34 行是相关部分。
所以所有这些都有效,直到第 4 步失败,Error: Could not find "env.orig" in any of your source paths
第 31 行失败。
这对我来说非常令人困惑,因为第 28 行有效,我可以env.orig
在磁盘上看到文件,那么为什么反向不工作呢?
我究竟做错了什么?
更新1:
在查看了 Thor 源之后thor\actions.rb
,很明显 Thor 对源和目标使用了不同的路径(不是您当前的项目路径)。此外,我的副本实际上不起作用,它实际上是在处理 ERB 模板文件,而不是已经生成的文件。
稍作休息后,我突然想到使用正确的工具来完成这项工作,所以现在我有了:run 'cp environment.rb environment.~'
并且run 'mv environment.~ environment.rb'
工作得很好。我相当肯定,如果没有安装 unix 工具,这在 Windows 机器上是行不通的,但我可以忍受。有没有人有更好的方法?