在deploy.rb中需要'lib / my_module'

时间:2014-05-29 00:51:01

标签: ruby-on-rails ruby module capistrano

我在lib/redmine.rb中有一个模块,里面有一些类和东西。我可以从控制台调用Redmine.some_method就好了,但我希望在部署期间使用Capistrano加载此模块。

我试过了:

require 'lib/redmine'
require 'redmine'
require './lib/redmine'
require '../lib/redmine'
load 'lib/redmine'

以及所有在其末尾都有.rb的人。

我似乎无法从部署命名空间中访问Redmine模块...

1 个答案:

答案 0 :(得分:0)

最好的方法是将它变成一个宝石项目,然后简单地参考这个 通过你给它的名字进行项目。

我对上面代码的问题是我不知道你在redmine.rb中使用的布局,而你没有显示特定的错误。

请注意,require()会先尝试转到ruby SITE_DIR路径,因此需要使用“redmine”和“redmine”。像宝石一样安装(或者,通过setup.rb,这是宝石写入之前的旧方法)。

尝试使用ad-hoc解决方案(但不要在生产代码中使用它;修改加载路径,这不好也不需要;使用gem项目布局和安装,它更容易,从长远来看更安全):

$: << '.'
require './redmine.rb'