如何在Rails服务器启动后运行我的ruby代码?

我试过了:

after_initialize do #code end 

但是:(文件)

应用程序的某些部分,特别是观察者和路由,尚未在调用after_initialize块时设置。

我需要在我的代码中使用路由和记录器

有任何想法吗?

请参阅http://guides.rubyonrails.org/configuring.html的 3.1节

我相信你会把这段代码放在config / application.rb中

 config.after_initialize do # .... end # config.after_initialize takes a block which will be run after Rails has finished initializing the application. # That includes the initialization of the framework itself 

还有http://guides.rubyonrails.org/initialization.html

@ house9的答案是正确的,正如评论所指出的,这也将在运行rake任务,控制台等时执行。我使用以下内容来识别服务器实际执行的时间:

 # application.rb if defined?(Rails::Server) config.after_initialize do # Do stuff here end end 

另一种选择是创建自定义初始化程序。 它只是一个生成在config / initializers /下的ruby文件,并且正好执行“on_server_start”事件:)