Nik*_* So 35 ruby-on-rails pry
我在我的Rails控制台中使用Pry gem,但是pry风味的rails-console似乎已经失去了重载!重新加载模型和东西的方法.
以下是我启动pry控制台的方法
c:\rails\app> pry -r ./config/environment
Run Code Online (Sandbox Code Playgroud)
谢谢
Rod*_*ias 20
要使用重装!像rails console命令一样,将此代码添加到.pryrc中
# load Rails Console helpers like reload
require 'rails/console/app'
extend Rails::ConsoleMethods
puts 'Rails Console Helpers loaded'
Run Code Online (Sandbox Code Playgroud)
编辑== Gem pry-rails已经完成了所有这些,更加简单.
tel*_*ent 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
Run Code Online (Sandbox Code Playgroud)
(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
Run Code Online (Sandbox Code Playgroud)
这是引入更改的Rails pull请求的链接 - https://github.com/rails/rails/pull/3509
你可以告诉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
Run Code Online (Sandbox Code Playgroud)
这会让你reload!回来.
你可以在Pry wiki上查看这个页面:https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry
另请查看pry-rails插件:https://github.com/rweng/pry-rails
该维基上还有很多其他内容,这是一个很好的资源.
| 归档时间: |
|
| 查看次数: |
16257 次 |
| 最近记录: |