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

Ruby 为什么Bundler.require加载路径错误?,ruby,sinatra,bundler,Ruby,Sinatra,Bundler,我对Bundler和Sinatra有意见。首先,我在app.rb中使用了这个: require 'rubygems' require 'bundler/setup' require 'sinatra' require 'haml' require 'redis' ... 然而,我读到了关于Bundler.require的require,认为这是一种很好的干法,因为Gemfile中指定的gems就是我在应用程序中需要的gems。为什么要在app.rb中再次指定requires?因此,我将代码更改

我对Bundler和Sinatra有意见。首先,我在app.rb中使用了这个:

require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'haml'
require 'redis'
...
然而,我读到了关于Bundler.require的
require,认为这是一种很好的干法,因为Gemfile中指定的gems就是我在应用程序中需要的gems。为什么要在
app.rb
中再次指定requires?因此,我将代码更改为:

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已经将应用程序的根路径移动到了自己的根路径。但这是为什么呢?

旧答案:

看看Engine Yard的博客

新答案:


正如拉姆克所指出的,发动机场上的柱子很旧;因此,我制作了一个简单的应用程序

这篇文章已经很老了,require_env已经不存在了,它也不能解释我的问题。你可以使用“set:views,File.dirname(File)+'/view”更改视图路径