0

我正在尝试创建我的第一个 Rails 应用程序模板,但该copy_file方法遇到了一个小问题。

首先是一些背景知识.... 显然 Ruby OpenSSL 包没有附带 CA 存储,因此任何连接到 HTTPS 服务的尝试都将失败。解决这个问题的方法(对于 Rails 3 应用程序)是将行添加OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE到文件的顶部config/environment.rb。我需要在我的模板中即时执行此操作,以便安装 jQuery。

所以我已经弄清楚了,我的一般想法是:

  1. 备份我的config/environment.rb文件。
  2. 将数据添加到原始数据
  3. 运行jquery:install --ui任务
  4. 恢复原始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 机器上是行不通的,但我可以忍受。有没有人有更好的方法?

4

1 回答 1

0

请参阅我的更新了解原因,但解决方案是使用正确的工具来完成这项工作,所以现在我有了:run 'cp environment.rb environment.~'并且run 'mv environment.~ environment.rb'工作得很好。我相当肯定,如果没有安装 unix 工具,这在 Windows 机器上是行不通的,但我可以忍受。

于 2011-03-21T14:10:46.887 回答