странное поведение - консоль irb и rails

irb сначала дает true, а затем всегда false для команды require rails.

консоль rails всегда выдает false.

Как это происходит?

Пожалуйста, смотрите ниже cmd-

~/Workspaces/eclipse/image_cropper_ws/image_cropper$ irb

1.9.2-p180 :001 > require 'rails'
=> true 
1.9.2-p180 :002 > require 'rails'
=> false 
1.9.2-p180 :003 > exit



~/Workspaces/eclipse/image_cropper_ws/image_cropper$ rails console
Loading development environment (Rails 3.2.8)

1.9.2-p180 :001 > require 'rails'
=> false 
1.9.2-p180 :002 > require 'rails'
=> false 

person My God    schedule 04.12.2012    source источник


Ответы (2)


require возвращает false, когда то, что вы пытаетесь потребовать, уже загружено — в первый раз, когда вы require 'rails', оно не загружается, и require возвращает true.
Во второй раз, когда вы require 'rails', оно уже загружено, и require возвращает false.

Rails всегда загружается в консоли rails.

person Nils Landt    schedule 04.12.2012
comment
О, я думал, что команда require даст true, только если она успешно запрашивает рельсы для нашего проекта, иначе false. Дело в том, что он возвращается в соответствии с загрузкой в ​​момент его записи. - person My God; 04.12.2012

Проверьте документы для require, это состояния

Загружает заданное имя, возвращая true в случае успеха и false, если функция уже загружена.

Итак, когда вы в первый раз вызываете require в irb, он загружается и возвращает true. Во второй раз он уже загружен, поэтому возвращает false.

Когда вы вызываете rails c, он загружает irb с вашей средой rails, поэтому он должен уже требовать rails

person Paul.s    schedule 04.12.2012