Rails创建了一个简单的功能以在控制台中运行以在整个系统

时间:2019-04-06 01:34:02

标签: ruby-on-rails

我想做些简单的事情:

rails c
> ping
=> pong

所以我可以写一个像这样的动作

定义      把“乒乓球” 结束

但是我放在哪里?我如何在不实例化新模型的情况下使其工作? application_helper.rb不起作用,application_controller.rb

也不起作用

2 个答案:

答案 0 :(得分:2)

您可以创建一个文件夹services,并在其中创建文件ping_service.rb

class PingService
 def ping
  puts 'pong'
 end
end

,然后在您的控制台中:

rails c
> PingService.new.ping
=> "pong"

答案 1 :(得分:1)

如果您想专门在Rails中运行自定义方法,可以在lib目录中的模块中定义您的助手方法

# lib/custom_console_methods.rb

module CustomConsoleMethods
  def ping
    puts 'pong'
  end
end

然后在application.rb文件中,将包含模块的块传递到consoleRails::ConsoleMethods

# config/application.rb

module YourRailsApp
  class Application < Rails::Application
    console do
      require 'custom_console_methods'
      Rails::ConsoleMethods.include(CustomConsoleMethods)
    end
  end
end

如果要在系统范围内运行它,只需将方法放在~/.irbrc文件中。每次您运行irbrails console

都会加载它
def ping
  puts 'pong'
end