在哪里定义可以直接从rails控制台访问的方法

时间:2012-02-21 09:54:47

标签: ruby-on-rails ruby

所以想法是定义

def foo
  puts "Works!"
end

直接从控制台直接加载我写的任何东西

irb(main):001:0>foo()
=> "Works!"
irb(main):002:0>

我在Windows上使用1.9.3。我想使用它来获得一个重载lib / *的方法,这样我就不需要重启控制台了。谢谢。

2 个答案:

答案 0 :(得分:9)

我认为这就是你要问的......我在初始化程序中有以下代码:

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模块,并使其中定义的方法可用,而无需手动加载任何内容。

答案 1 :(得分:0)

如果这仅用于测试目的,那么在模型中定义这些文件:)并在后面将它们移动到lib目录