Как запустить консоль rails с выключенным pry?

Иногда у меня есть причина хотеть запустить консоль rails как irb repl, а не как pry (какой бы крутой ни был pry). По умолчанию это будет pry, потому что pry есть в Gemfile. Как это делается в наши дни?

Я думаю, что раньше при запуске rails console была опция --irb, но сейчас ее, похоже, нет. Когда я пытаюсь это сделать, я получаю сообщение об ошибке устаревания.

Подробнее

Если я просто запускаю «консоль rails», мне нужно подглядывать.

Если я запускаю «консоль rails -irb=irb»:

$ rails c -irb=irb                                                                                                                                                                         
--irb option is no longer supported. Invoke `/your/choice/of/ruby script/rails console` instead

Соответствующие строки из моего Gemfile:

gem 'rails', '3.2.18'
gem 'pry-rails'
gem 'pry-plus'

person Greg Malcolm    schedule 05.08.2014    source источник
comment
pry хорош в некоторых аспектах, но IRB остается более стабильным/надежным при выполнении некоторых операций (особенно при копировании-вставке).   -  person Cyril Duchon-Doris    schedule 02.10.2017
comment
Обратное: если rails c открывает irb, но вы хотите, чтобы pry открылось, то сделайте pry -r ./config/environment   -  person krozaine    schedule 29.09.2018


Ответы (4)


Запуск pry при вызове rails console или rails c настраивается гемом pry-rails. Если вы посмотрите на вопросы pry-rails, там один описывает решение.

Определите переменную среды DISABLE_PRY_RAILS как 1.

Таким образом, вы можете вызывать консоль rails без подглядывания с помощью:

DISABLE_PRY_RAILS=1 rails c
person ReggieB    schedule 26.10.2015
comment
Это очень мило. Обратите внимание, что вам также нужно сначала запустить spring stop, прежде чем вызывать вышеуказанное. - person nonrectangular; 27.05.2017

Работает в Rails 4: В вашем application.rb, внутри вашего класса Application, поместите этого щенка.

# Use the IRB console instead of the Pry one
console do
  require 'irb'
  config.console = IRB
end

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

person Alex Levine    schedule 20.08.2015

Вдохновленный приведенными выше ответами, я добавил следующее в определение класса в application.rb, чтобы Pry можно было переключать из консоли:

console do
  if ENV['IRB']
    require 'irb'
    config.console = IRB
  end
end

Затем вы можете запустить rails c, чтобы получить консоль Pry, и IRB=true rails c, чтобы получить консоль IRB. Это легко изменить, если вы хотите обратное. Работает в Rails 4 и 5.

person Matthew Hinea    schedule 15.08.2017

Для всех, кто сталкивается с той же проблемой, это мой (дерьмовый) обходной путь.

Я завернул драгоценные камни в Gemfile следующим образом:

...
unless ENV['NOPRY']
  gem 'pry-rails'
  gem 'pry-plus'
end
...

Затем запустите это с терминала unix:

NOPRY=true bundle install
NOPRY=true rails console

Некрасиво, но со своей задачей справляется...

person Greg Malcolm    schedule 07.08.2014