2010-11-22 2 views
1

У меня проблема с Bundler и Sinatra. Во-первых я использовал это в моем app.rb:Почему Bundler.require загружает неправильный путь?

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

Однако я прочитал о Bundler.require и думал, что это хороший способ DRY, так как драгоценные камни, указанные в Gemfile являются те, которые я потребует в мое приложение в любом случае. Почему я должен указывать требования снова в 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 

Очевидно, что путник переместил корневой путь приложения на свое место. Но почему?

+0

вы можете изменить путь просмотра, используя «set: views, File.dirname (__ FILE__) + '/ view» – Sinetris 2010-11-23 14:30:14

ответ

3

Старый ответ:

Посмотрите на "using the rubygems bundler for your app" на блоге Engine Yard.

Новый ответ:

Как Lamnk отметил, что пост на Engine Yard стара; поэтому я сделал простое приложение https://github.com/sinetris/sinatra-example-bundler

+0

Сообщение довольно старое, require_env больше нет, и он не работает объясните мою проблему. – Lamnk 2010-11-23 11:04:24

Смежные вопросы