требуется использовать файл dirname (__ FILE__) или просто требовать имя файла? - PullRequest
2 голосов
/ 28 мая 2010

У меня есть файл в каталоге lib в моем проекте rails. как это (каталог) a1 a2 a.rb

когда мне в a.rb требуется a1.

require 'a/a1'

он предупредит меня /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require ': такой файл не загружается - a / a1 (MissingSourceFile)

но используйте dirname ( FILE ), все работает.

require File.dirname(__FILE__) + '/a/a1

почему

1 Ответ

2 голосов
/ 28 мая 2010

код:

requie 'a/a1'

попытается найти каталог a из текущего рабочего каталога, что может отличаться от того, что вы думаете, особенно если выполняется из среды, отличной от командной строки (например, консоль rails или textmate).

require File.dirname(__FILE__) + '/a/a1

добавляет '/ a / a1 к пути к файлу, в котором появляется эта строка, так что вы всегда будете уверены, что получаете нужный файл, в какой бы среде вы ни работали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...