确定rails是否在Web服务器下运行

rog*_*ueg 5 ruby-on-rails

如何判断rails是否在Web服务器下运行,而不是脚本或irb?

对于上下文:我正在跟踪ActiveRecord对象,如果对象发生更改,我希望通过电子邮件发送警报,前提是通过Web界面进行更改.

Ale*_*una 5

我的应用程序的任务是在专门作为服务器启动之前执行几次启动检查。在我的特殊情况下,我想确保User数据库中存在特殊记录,因为对我的应用程序进行的 API 调用需要这个User

我在负责启动检查的初始化程序之一中使用以下技巧:

if defined? Rails::Server
  puts "Running as a server..."
  # Perform checks here...
end
Run Code Online (Sandbox Code Playgroud)


rog*_*ueg -1

我发现了一些有用的东西,尽管它不是很漂亮

$0  # => "irb" (for script/console) 
    # => "/some/handler.fcgi" (for webserver)
    # => "/some/script.rb" (for a script)
Run Code Online (Sandbox Code Playgroud)