37

Rails コンソールで Pry gem を使用していますが、pry 風味の rails-console がリロードを失ったようです。モデルなどをリロードする方法。

こじ開けコンソールを起動する方法は次のとおりです

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

ありがとうございました

4

9 に答える 9

22

リロードを使用するには!rails consoleコマンドのように、このコードを.pryrcに追加します

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

EDIT == Gem pry-railsはすでにこれらすべてを実行しており、はるかに単純です。

于 2012-12-10T12:18:40.907 に答える
12

最近この質問に来た人のために: Rails 3.2 で答えが変更されましreload! た。以前のバージョンでは irb コマンドが にメソッドとして追加されていましたが、グローバル名前空間の汚染を避けるためObjectに に追加されました。IRB::ExtendCommandBundle

私が今やっていることは、(1)のdevelopment.rbです

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

(2) .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

変更が導入された Rails プル リクエストへのリンクは次のとおりです - https://github.com/rails/rails/pull/3509

于 2012-01-23T18:25:34.803 に答える
6

Pry wiki でこのページを確認できます: https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry

pry-railsプラグインもチェックしてください: https://github.com/rweng/pry-rails

その wiki には他にも多くのコンテンツがあり、素晴らしいリソースです。

于 2011-09-08T12:40:16.210 に答える
6

Pry に Rails 環境をロードするように指示できます。.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

これはあなたのreload!背中を与えるでしょう。

于 2011-09-08T11:50:50.460 に答える
3

Zeus と Pry に問題がある場合は、以下を追加してみてください.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

ここから撮影

于 2015-01-19T18:01:14.563 に答える