【发布时间】:2012-02-21 09:54:46
【问题描述】:
所以想法是定义
def foo
puts "Works!"
end
直接从控制台不加载我写的任何东西
irb(main):001:0>foo()
=> "Works!"
irb(main):002:0>
我在 Windows 上使用 1.9.3。我想使用它来获得一个重新加载 lib/* 的方法,这样我就不需要重新启动控制台。谢谢。
【问题讨论】:
标签: ruby-on-rails ruby
所以想法是定义
def foo
puts "Works!"
end
直接从控制台不加载我写的任何东西
irb(main):001:0>foo()
=> "Works!"
irb(main):002:0>
我在 Windows 上使用 1.9.3。我想使用它来获得一个重新加载 lib/* 的方法,这样我就不需要重新启动控制台。谢谢。
【问题讨论】:
标签: ruby-on-rails ruby
我认为这就是您要问的...我在初始化程序中有以下代码:
if defined?(Rails::Console)
require "util/console_extensions"
include ConsoleExtensions
end
以及lib/util/console_extensions.rb中定义的控制台中我想要的任何额外方法
module ConsoleExtensions
def foo
puts "Works!"
end
end
这会在加载 rails 控制台时自动需要并包含 ConsoleExtension 模块,并使其中定义的方法可用,而无需手动加载任何内容。
【讨论】:
Rails::Console 未定义。这里的第一条评论 (stackoverflow.com/a/4604079/2339708) 认为是因为 Spring。
如果这只是为了测试目的,那么在模型中定义这些文件:) 然后将它们移动到 lib 目录
【讨论】: