2010-08-24 4 views
3

Следующая .rb скрипт работает нормально, если excuting в папке скрипта:Как открыть файл в той же папке рубинового скрипта?

db = YAML::load(File.open('db.yml')) 
    ActiveRecord::Base.establish_connection(db) 

File.open потерпит неудачу, если скрипт выполняется за пределами папки сценария. Как я могу указать путь скрипта к db.yml? Благодаря!

ответ

9

Это должно работать:

db_file = File.join(File.dirname(__FILE__), "db.yml") 

Edit: я немного запутанный с папкой сценария, это должно работать.

1

Если вы обнаружили, желая сделать этот букет, вы могли бы рассмотреть возможность добавления каталога скрипта в путь нагрузки (особенно в 1.9.2, где больше не находится в пути загрузки «»):

$: << File.expand_path(File.join(File.dirname(__FILE__))) 
Смежные вопросы