我刚刚完成了第一次RoR设置,创建一个新的应用程序运行正常。但是当我想运行rails服务器时,我收到以下错误:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/delayed_job-2.1.3/lib/delayed/yaml_ext.rb:30:在'remove_method'中:方法'to_yaml'未在Class中定义( NameError)
我在app目录中运行了“bundle install”并安装了所有必需的文件(但是有一些问题,但是我排除了gemfile中存在问题的gems),最后一个bundle install表示我已成功安装了所有文件需要的包。
我迷路了,我在互联网上找不到类似的错误。你能救我吗?
编辑:我忘了提到我的新应用程序没有问题。它正在运行一个现有的(我没有构建,但对其他人工作正常)错误与之相关。这是该应用程序的gemfile:
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'mysql'
gem "haml", ">= 3.0.0"
gem "haml-rails"
gem 'simple_form'
gem 'delayed_job'
#gem 'auto_crawlers'
gem 'will_paginate', '~> 3.0.beta'
group :test do
gem 'factory_girl_rails'
gem 'mocha'
end
group :development do
#gem "nifty-generators", "0.4.3", :git => "git://github.com/JonasNielsen/nifty-generators.git"
gem 'fastercsv'
end
gem "mocha", :group => :test
你认为这个错误是因为我用“#”遗漏了两个宝石吗?这些一开始就引起了问题,我认为我不需要它们来测试应用程序中的一些小改动(我必须修改一些视图)
答案 0 :(得分:1)
正在描述这个问题,并在此处修复:https://github.com/collectiveidea/delayed_job/issuesearch?state=open&q=yaml#issue/194
答案 1 :(得分:0)
从命令行尝试此操作:irb -rubygems -r delayed_job
然后从捆绑的目录bundle-exec irb -rubygems -r delayed_job
开始,这将显示您的系统宝石与捆绑设置之间是否存在差异 - 您可能会在一个目录中看到错误或两者都试图运行IRB。
如果使用bundle-exec但是没有使用系统宝石时出错,那么这是一个捆绑器问题。如果没有,你确定该应用程序设计为在Ruby 1.9下运行吗?在需要DJ的时候看起来似乎没有to_yaml,这意味着它可能需要某处require "yaml"
。