为什么Bundler.require加载错误的路径?

时间:2010-11-22 16:06:28

标签: ruby sinatra bundler

我遇到了Bundler和Sinatra的问题。首先我在app.rb中使用了这个:

require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'haml'
require 'redis'
...

但是我读到了Bundler.require并认为这是一个很好的DRY方式,因为Gemfile中指定的gems无论如何都是我在我的应用中需要的。为什么要在app.rb中再次指定要求?所以我将代码更改为:

require 'rubygems'
require 'bundler'
Bundler.require(:default)

好多了?直到问题发生:

Errno::ENOENT at /
No such file or directory - /home/lamnk/.rvm/gems/ruby-1.9.2-head/gems/bundler-1.0.7/lib/bundler/views/index.haml
file: tilt.rb location: read line: 119

很明显,bundler已将应用程序的根路径移动到自己的路径。但那为什么呢?

1 个答案:

答案 0 :(得分:3)

旧答案:

在Engine Yard博客上查看"using the rubygems bundler for your app"

新答案:

林兰克指出,发动机场上的那篇文章已经过时了;所以我制作了一个简单的应用https://github.com/sinetris/sinatra-example-bundler