2012-04-23 101 views
3

我目前正在开发一个独立的ruby应用程序以及作为其前端的Rails应用程序。我使用Bundler管理Ruby应用程序的依赖关系,因此有两个gemfiles。从Rails调用外部Rake任务:依赖项问题

我试图通过系统调用rake任务从Rails前端执行Ruby应用程序时出现问题。

当我从标准IRB调用rake任务时,它可以工作;但如果我尝试从Rails控制器或Rails控制台调用该任务,则会出现依赖关系问题。

作为一种解决方法,我可以将Rails应用程序中没有的所有gem添加到Rails Gemfile中,但我想这种方法是错误的。

我认为这可能是Bundler的范围问题。我怎么能解决这个问题?

谢谢。

回答

2
fork do 
    Dir.chdir("/your/project/dir") 
    ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', __FILE__) 
    Bundler.setup 
    exec "rake -T" 
end 
+0

它工作=),非常感谢你! – bruno077 2012-04-23 18:46:25

+0

同样,设置ENV ['BUNDLE_GEMFILE'] =“”'有时也很有用。 – merlin2011 2015-05-18 23:14:50