【发布时间】:2011-12-09 09:15:31
【问题描述】:
我在 Rails 应用程序中遇到了一些 Ruby gem 的相同问题。
当我使用时:
require 'rubygems'
require 'uuidtools'
或
require 'rubygems'
require 'json'
在 Rails 应用程序中,我得到 "no such file to load -- uuidtools" 错误(或 "no such file to load --json" - 分别) .
- 两个 gem 都已正确安装
- 当我在 irb 中键入这些指令对时,结果我得到“真”。
- 当我尝试使用
rails server或在 NetBeans 调试会话中运行应用程序时,我得到“没有要加载的文件” - 看来这个问题涉及到许多其他已安装的 gem。
【问题讨论】:
-
不,他们不是。我添加了它们,现在应用程序似乎可以工作了!顺便说一句,Gemfile 的目的是什么以及在“buldle install”命令上安装所需的 gem?
-
Gemfile 是
bundle install知道要安装什么的方式...它是您的依赖目录。在较旧的(Rails gem install XXX 并让 Rails 接手它(尽管大多数人会认为这是一个功能!) -
你在说什么捆绑器总是在应用程序运行时运行。我理解对了吗?在我看到您的评论之前,我认为捆绑程序仅在您发出“捆绑”命令然后完成时才会运行并获得控制。
-
Bundler 被 Rails 用来加载你的 gem;
bundler命令只是该库的包装器,它将来自正确 gem 版本的任何 binfiles 放在您的路径中,以便您可以在安装多个时执行正确的版本。所以你之前的理解是不完整的,虽然不是完全错误的。
标签: ruby-on-rails load require