Где определить метод, который будет доступен напрямую из консоли rails - PullRequest
3 голосов
/ 21 февраля 2012

Так что идея состоит в том, чтобы определить

def foo
  puts "Works!"
end

и прямо с консоли без загрузки ничего пишу

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

Я использую 1.9.3 в Windows. Я хочу использовать это для того, чтобы иметь метод, который перезагрузит lib / *, так что мне не нужно перезапускать консоль. Спасибо.

Ответы [ 2 ]

9 голосов
/ 21 февраля 2012

Я думаю, это то, что вы спрашиваете ... У меня есть следующий код в инициализаторе:

if defined?(Rails::Console)
  require "util/console_extensions"
  include ConsoleExtensions
end

и любые дополнительные методы, которые я хочу в консоли, определены в lib/util/console_extensions.rb

module ConsoleExtensions
  def foo
    puts "Works!"
  end
end

Это автоматически требует и включает модуль ConsoleExtension при загрузке консоли рельсов и делает доступные методы, определенные в ней, без необходимости загружать что-либо вручную.

0 голосов
/ 21 февраля 2012

Если это только для целей тестирования, тогда определите эти файлы внутри моделей :), а послесловия переместите их в каталог lib

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...