Требование файлов в Ruby - PullRequest
0 голосов
/ 27 февраля 2012

Я создаю веб-приложение в Синатре, и у меня есть куча файлов в / lib / checkers /

В настоящее время я нуждаюсь в них, выполнив это:

require File.expand_path(File.dirname(__FILE__) + '/lib/checkers/board.rb')
require File.expand_path(File.dirname(__FILE__) + '/lib/checkers/checker.rb')

что кажется глупым, но я пробовал

require '/lib/checkers'

или

require '/lib/checkers/' 

или

require File.expand_path(File.dirname(__FILE__) + 'lib/checkers/')

и другие варианты, аналогичные им, но, похоже, ничего не работает.Вы можете помочь?

1 Ответ

4 голосов
/ 27 февраля 2012
require_relative 'lib/checkers/board'
require_relative 'lib/checkers/checker'

Так я всегда это делал. Это находится в моем главном файле приложения, который всегда находится в корневом каталоге. Я не уверен, как он будет вести себя из других файлов, хотя я полагаю, что это будет относительно вызывающего файла.

Кроме того, settings.root вернет корневой каталог вашего приложения, нигде не нужно File.dirname(__FILE__).

Это работает в Ruby 1.9 без каких-либо специальных приемов через комментарии выше.

Если вы используете 1.8, вы можете сделать это

require './lib/checkers/board'
require './lib/checkers/checker'

Другие методы для 1.8 перечислены в этот вопрос .

...