这个rails模板有什么问题?

时间:2011-03-18 14:28:45

标签: ruby-on-rails ruby thor

我正在尝试创建我的第一个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文件。
  5. 请参阅my template Gist,第25..34行是相关部分。

    所以这一切都有效,直到步骤#4在#31行上Error: Could not find "env.orig" in any of your source paths失败 这对我来说非常令人困惑,因为第28行工作,我可以在磁盘上看到env.orig文件,那么为什么反向工作呢?

    我做错了什么?

    更新1:

    在查看Thor源thor\actions.rb之后,很明显Thor使用了不同的路径(不是您当前的项目路径)来获取源和目标。此外,我的副本实际上正在工作,它实际上正在处理ERB模板文件,而不是已经生成的文件。

    经过一段时间后,我发现使用正确的工具,所以现在我有:run 'cp environment.rb environment.~'run 'mv environment.~ environment.rb'工作得很好。我相当肯定这不会在没有安装unix工具的Windows机器上工作,但我可以忍受。有没有人有更好的方式?

1 个答案:

答案 0 :(得分:0)

请参阅我的更新以了解为什么,但解决方案是使用正确的工具,所以我现在:run 'cp environment.rb environment.~'run 'mv environment.~ environment.rb'工作得很好。我相当肯定这不会在没有安装unix工具的Windows机器上工作,但我可以忍受。