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.
Puede consultar esta página en la wiki de Pry: https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry
También consulte el plugin de pry-rails
: https://github.com/rweng/pry-rails
También hay mucho otro contenido en esa wiki, es un gran recurso.
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"