【问题标题】:require in capistrano deploy.rb cannot find file在 capistrano deploy.rb 中需要找不到文件
【发布时间】:2011-03-20 00:37:40
【问题描述】:

我有一个 rails 3.0.5 应用程序,我正在设置 capistrano 以使用食谱。

在我的配置目录中,我有一个名为“database_capistrano.rb”的文件,在我的 deploy.rb 中,也在配置目录中,我有以下行,就在开头:

需要'database_capistrano'

但我得到了:

`require': 没有要加载的文件 -- capistrano_database (LoadError)

也可以试试:

需要'database_capistrano.rb'

而且不工作......

在 Rails 3.0.5 中,如何在 capistrano deploy.rb 中包含文件??

【问题讨论】:

    标签: ruby-on-rails-3 deployment capistrano


    【解决方案1】:

    好的,我设法找出应该如何做到这一点。

    刚刚将文件复制到一个新的子目录“deploy”,仅用于组织,并在我的 deploy.rb 开头,添加:

    $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'deploy')

    然后,在 deploy.rb 中,刚刚使用:

    需要'database_capistrano'

    【讨论】:

    • 谢谢,也遇到了这个问题,解决了。希望我首先理解这个问题=)
    • 需要 Capistrano 食谱。您必须将存储配方的位置添加到 ruby​​ 的 $LOAD_PATH 变量中才能找到它。
    • 结构 app->config->deploy->database_capistrano.rb 也是如此吗?我仍然收到有关找不到文件的错误。我尝试了根目录、配置目录、部署目录...
    【解决方案2】:

    对于未来的访客,我在Capistrano: deploy.rb file refactoring 中找到的答案得到了更好的结果

    即使用load 代替require。只要该文件是捆绑包中的 gem 或需要捆绑包中的其他 gem 的文件,这将起作用。

    坦率地说,我没有尝试接受的答案,一半是因为它看起来有点变通,一半是因为我没有完全理解如何根据我的情况调整它

    【讨论】:

    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多