【发布时间】:2011-07-10 19:54:32
【问题描述】:
在 OS X 上将我的 Rails 安装升级到 Rails 3 后,我在使用 Mongrel 运行 Rails 2.x 开发站点时遇到了问题。 WEBrick 似乎可以工作,但我真的很想得到 Mongrel 的良好输出来进行调试。
在运行$ script/server 之后,我明白了:
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load': no such file to load -- mongrel_rails (MissingSourceFile)
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'
到目前为止,这是我尝试过的:
$ sudo gem update system
$ sudo gem update
$ sudo gem uninstall mongrel
$ sudo gem install mongrel --include-dependencies
$ which mongrel_rails
→/usr/bin/mongrel_rails
$ mongrel_rails start
→ 成功,但没有标准输出
$ which mongrel_rails
→/usr/bin/mongrel_rails
$ rails _2.0.2_ test
→ 新应用也有同样的问题。
- 操作系统:OS X.6.x
- Rails:3.0.5(Rails 2.x 应用程序存在问题)
-
gem -v:1.6.1 - 杂种:杂种 (1.1.5)
我已经阅读了关于“-- mongrel_rails (MissingSourceFile)”的所有 Google 结果;数量不多。
这里有人能告诉我如何继续调试吗?谢谢!
更新:
我现在尝试安装旧版本的 gem 并在我的 Rails 2.x 站点的 config/environment.rb 文件中指定它们。我试过 1.1.5、1.1.4 和 1.2.0pre。
这些都没有丝毫区别。
自从usr/bin 中的可执行文件以来,我想知道这是否是文件所有权问题在我的 Rails 3 安装中搞砸了,是否其中一个文件在运行时没有获得我的路径?
/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb
归 admin / root 所有,所以应该没问题吧?
会不会是 active_support 的问题!?
这是来自dependencies.rb 的引发错误的代码:
484 class Object
485
486 alias_method :load_without_new_constant_marking, :load
487
488 def load(file, *extras) #:nodoc:
489 Dependencies.new_constants_in(Object) { super(file, *extras) }
490 rescue Exception => exception # errors from loading file
491 exception.blame_file! file
492 raise
493 end
...
这是一个找不到文件的错误,所以它没有查看我知道文件的位置......
在命令行上运行 mongrel_rails 可以工作……
其中 mongrel_rails 在usr/bin 中显示它,
那么有什么问题呢?
【问题讨论】:
标签: ruby-on-rails macos mongrel