Почему Bundler.require загружает неправильный путь?
Вопрос
У меня проблема с Бандлером и Синатрой. Сначала я использовал это в моем App.rb:
require 'rubygems'
require 'bundler/setup'
require 'sinatra'
require 'haml'
require 'redis'
...
Однако я читал о Bundler.require
и подумал, что это хороший сухой способ, потому что в драгоценных камнях, указанных в драгоценных камнях потребует в моем приложении в любом случае. Почему я должен указать требуемые снова в 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 переместил корневой путь приложения к своему собственному. Но почему это?
Решение
Старый ответ:
Взгляни на «Использование Bundler Rubygems Bundler для вашего приложения» на блоге двигателя двора.
Новый ответ:
Как отметил Ламнк, этот пост на дворе двигателя старый; поэтому я сделал простое приложение https://github.com/sinetris/sinatra-example-bundler.