Странная неспособность потребовать config/boot после обновления до ruby ​​1.9.2

Я обновил свой ruby ​​до 1.9.2, и теперь, когда я пытаюсь запустить приложение Rails 2.3.5 с помощью script/server, я получаю эту ошибку:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- script/../config/boot (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from script/server:2:in `<main>'

Но script/server: 2 определенно выглядит корректно, а файл config/boot.rb существует в нужном месте.

Ответ 1

Замена строки 2 script/сервера

require File.expand_path('../../config/boot', __FILE__)

работает для меня (взято из Rails 3)

Ответ 2

Намного проще, не требует модификации всех скриптов:

Вместо:

script/server 

вызов:

./script/server

Ответ 3

потому что ruby ​​1.9.2 не добавляет текущий каталог в LOAD_PATH.

Добавьте это в верхнюю часть вашего файла script/server:

$: << File.dirname(__FILE__)

Или в вашем случае:

$: << File.dirname(__FILE__) + '..'

Ответ 4

Я встретил ту же проблему, что и описанную. Ubuntu 10.04 x64, Eclipse Helio, AptanaStudion2 с RadRail, Ruby 1.9.2, Rails 2.3.5 это не работает для меня:

require File.expand_path('../../config/boot', __FILE__)

Это работает для меня

require File.expand_path(__FILE__)+ '/../../config/boot'

Ответ 5

$: << File.dirname(__File__) + '..' не будет работать, так как вы получите каталог

script..

Try

$: << File.join(File.dirname(__FILE__),'..')

Ответ 6

Вы можете попробовать добавить путь source/usr/share/ruby-rvm/scripts/rvm

Ответ 7

Пожалуйста, проверьте свой корневой путь до начала padrino. например, если ваше приложение в "C:\XXXXXXX\YYYYYYY\ZZZ-padrino" здесь, и вы находитесь в "C:\XXXXXXX\YYYYYYY \" в командной строке, тогда эта ошибка произойдет. то вы должны в "C:\XXXXXXX\YYYYYYY\ZZZ-padrino".