如何只为控制台要求一个文件

Arn*_*Roa 7 ruby-on-rails

我有一个Ruby类,我将仅用于控制台,它ActiveRecord::Base使用一些快捷方式ua来修补补丁,update_attribute我不希望在运行rails server时加载它,但仅在运行rails console命令时加载它.

实现这个目标的方法是什么?

Mih*_*scu 8

rails console 定义 Rails::Console

所以你可以做到

if defined?(Rails::Console)
  # this runs only in rails console
end
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用config/application.rb:

module MyApplication
  class Application < Rails::Application
    console do
      require 'my_console_file'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)