在安装之前,安装gem会尝试在我的自定义rake任务中加载gem

时间:2010-06-22 03:58:53

标签: ruby-on-rails ruby rubygems rake

我正在使用rails 2.3.5开发应用程序,使用vlad进行gitorious和部署,操作系统是Linux Mint 9 Isadora。
vlad:setup和vlad:更新还可以。 但当我vlad:migrate和我在服务器上ssh并尝试rake gems时出现相同的错误:安装

  耙子中止了!
  没有这样的文件加载 - ya2yaml
  在/ var / WWW /路径/到/发行/ 20100622030150 / Rake文件:10   (通过使用--trace运行任务查看完整跟踪)

我的config/environment.rb很好:

RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION  
# Bootstrap the Rails environment, frameworks, and default configuration  
require File.join(File.dirname(__FILE__), 'boot')  
Rails::Initializer.run do |config|  
  config.gem "haml"

我在lib/tasks/db_fixtures.rake中有一个需要ya2yaml的自定义任务:

namespace :export do
desc 'Create YAML test fixtures from data in an existing database.
Defaults to development database.  Set RAILS_ENV to override.'
require 'rubygems'
require 'ya2yaml'
task :fixtures => [:environment] do

当我重命名此文件时,它不会被rake加载,而我在rake gems:install

时不会再出现错误

所以我的猜测是它看起来像 rake gems:安装尝试在安装gems之前加载我的自定义任务中的lib 因为某种原因并且给我一个错误。

什么是解决方案?
谢谢,

1 个答案:

答案 0 :(得分:2)

这可能有用吗?通过将rake任务移动到任务本身来延迟rake任务的需求

task :fixtures => [:environment] do
    require 'rubygems'
    require 'ya2yaml'
    # ...

默认情况下运行rake任务'加载'所有rake文件