ruby-on-rails - Rails 3.0 & Ruby 1.9.2rc : Rake commands return 'already initialized constant' & stack level too deep errors. 任何想法

标签 ruby-on-rails ruby rake

我正在尝试在 Ubuntu 10.04 上运行 Rails 3 beta 4 和 Ruby 1.9.2rc。它最初有效,但在完成我的第一个 bundle install/package 之后,我现在在所有 Rails 项目中都遇到以下错误。即使是基本的“rails new testproject”后跟一个 rake 也会显示错误消息。

简而言之,我很难过。非常感谢任何有关可能导致此问题的帮助。

我唯一注意到的事情——可能相关也可能不相关——是 ~/.bundle 文件中的目录是 ruby​​/1.9.1。我的机器上没有安装 1.9.1 - 只有 1.9.2rc。 ruby -v 带回 1.9.2

(in /home/john/Websites/sandbox/testerino)
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:32: warning: already initialized constant RAKEVERSION
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:404: warning: already initialized constant EMPTY_TASK_ARGS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:452: warning: already initialized constant EMPTY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:960: warning: already initialized constant RUBY_EXT
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:964: warning: already initialized constant RUBY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1033: warning: already initialized constant LN_SUPPORTED
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1242: warning: already initialized constant ARRAY_METHODS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1245: warning: already initialized constant MUST_DEFINE
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1249: warning: already initialized constant MUST_NOT_DEFINE
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1253: warning: already initialized constant SPECIAL_RETURN
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1259: warning: already initialized constant DELEGATING_METHODS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1569: warning: already initialized constant DEFAULT_IGNORE_PATTERNS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1575: warning: already initialized constant DEFAULT_IGNORE_PROCS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1612: warning: already initialized constant FileList
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1638: warning: already initialized constant EARLY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1968: warning: already initialized constant DEFAULT_RAKEFILES
rake aborted!
stack level too deep

最佳答案

我也遇到过这个问题。它似乎与您提到的特定版本的 rails 或 ruby​​ 无关,它们与我使用的版本不同(Rails 2.3.8、Rake 0.8.7、Ruby 1.9.1p378)。这似乎与 bundler 和 rake 不能很好地协同工作有关。

this lighthouse ticket 底部提到了一个对我有用的解决方案.这是简短的版本:

  • 运行“bundle exec bash”;看看 rake 现在是否有效 - 如果有效,
  • 通过查阅 env 命令并相应地修改 ~/.bashrc 或 ~/.bash_profile,确保前后的 bash 环境相同。

一旦你这样做了,你就会把 bundler 搞得一团糟。那时你必须清除 RUBYOPT 才能运行 bundle 命令:

RUBYOPT= bundle install --relock

编辑:

再考虑一下,我不确定这一定是解决这个特定问题的最佳方法。在采用这种方法之前,您可能会先尝试 Hiral Desai 的提示和其他一些答案,因为这种方法会改变环境。

关于ruby-on-rails - Rails 3.0 & Ruby 1.9.2rc : Rake commands return 'already initialized constant' & stack level too deep errors. 任何想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183495/

相关文章:

ruby-on-rails - 两个 bool 字段。单一输入字段。 ruby on Rails

ruby - 如何收紧这段 Ruby 代码?

ruby-on-rails - 如何在 rake 任务中使用救援

ruby-on-rails - 仅在特定环境中加载rake任务?

ruby-on-rails - Rake:不知道如何构建任务 'db::create'

ruby-on-rails - 如何彻底删除并重新创建thinking-sphinx索引?

ruby-on-rails - 在运行时更改 Rails cache_store?

javascript - 回形针默认 url 图像在 Rails 5 中不起作用

java - 一个极端使用日志记录的开源项目

ruby-on-rails - 如何在 Ruby 中获取随机数