inside ruby-on-rails pry

ruby on rails - inside - pry joya, ¿cómo volver a cargar?



pry-byebug (9)

¿Te refieres a ./config/environment ?

En cualquier caso, creo que eso es diferente al lanzamiento de una consola de rieles, ¡que es donde se reload! viene de. Redefinir IRB = Pry en mi archivo de configuración específico de env, lo que garantiza una consola completa, y todo funciona como un encanto.

Estoy usando la gema Pry en mi consola Rails, ¡pero parece que la consola de rieles con sabor a palanca ha perdido la recarga! método para recargar modelos y esas cosas.

Así es como inicio la consola de palanca

c:/rails/app> pry -r ./config/environment

Gracias


Para cualquiera que haya llegado a esta pregunta recientemente: la respuesta ha cambiado en Rails 3.2, ¡porque han cambiado cómo implementan la reload! Donde en la versión anterior los comandos irb se agregaban como métodos a Object , ahora se agregan a IRB::ExtendCommandBundle para evitar contaminar el espacio de nombres global.

Lo que hago ahora es (1) en desarrollo.rb

silence_warnings do begin require ''pry'' IRB = Pry module Pry::RailsCommands ;end IRB::ExtendCommandBundle = Pry::RailsCommands rescue LoadError end end

y (2) en .pryrc

if Kernel.const_defined?("Rails") then require File.join(Rails.root,"config","environment") require ''rails/console/app'' require ''rails/console/helpers'' Pry::RailsCommands.instance_methods.each do |name| Pry::Commands.command name.to_s do Class.new.extend(Pry::RailsCommands).send(name) end end end

Aquí está el enlace a la solicitud de extracción de Rails donde se introdujo el cambio: https://github.com/rails/rails/pull/3509


Para usar recarga! como el comando de la consola rails, agregue este código a su .pryrc

# load Rails Console helpers like reload require ''rails/console/app'' extend Rails::ConsoleMethods puts ''Rails Console Helpers loaded''

EDIT == Gem pry-rails ya hace todo esto, mucho más simple.



Puedes decirle a Pry que cargue tu entorno Rails en tu .pryrc

rails = File.join Dir.getwd, ''config'', ''environment.rb'' if File.exist?(rails) && ENV[''SKIP_RAILS''].nil? require rails if Rails.version[0..0] == "2" require ''console_app'' require ''console_with_helpers'' elsif Rails.version[0..0] == "3" require ''rails/console/app'' require ''rails/console/helpers'' else warn "[WARN] cannot load Rails console commands (Not on Rails2 or Rails3?)" end end

¡Esto te dará tu reload! espalda.


Recientemente escribí una publicación sobre pry and rails. Puede encontrarlo aquí http://lucapette.com/pry/pry-everywhere/ . Por cierto, como ya he dicho, le gustaría usar pry con:

pry -r ./config/environment

Te recomiendo que pruebes lo que escribí en el artículo, funciona realmente bien.


Si tiene problemas con Zeus y Pry, intente agregar a su .pryrc :

if Kernel.const_defined?(:Rails) && Rails.env require File.join(Rails.root,"config","environment") require ''rails/console/app'' require ''rails/console/helpers'' extend Rails::ConsoleMethods end

Tomado de here


Una mejor versión de la answer de @Rodrigo Dias. Si no quiere usar la gema de pry-rails , simplemente agregue siguiente en su .pryrc -

if defined?(Rails) && Rails.env if defined?(Rails::ConsoleMethods) include Rails::ConsoleMethods else def reload!(print=true) puts "Reloading..." if print ActionDispatch::Reloader.cleanup! ActionDispatch::Reloader.prepare! true end end end

Este código identifica adecuadamente los entornos y no incluye a ciegas Rails::ConsoleMethods .

Fuente - comment Github thread


alias pryr="pry -r ./config/environment -r rails/console/app -r rails/console/helpers"