ruby-on-rails - Ruby on Rails,在服务器启动 2.3 上运行一个方法

标签 ruby-on-rails

我想在 Rails 服务器启动时运行一个方法。这是一个模型方法。

我尝试使用 config/initializers/myfile.rb,但该方法是在迁移期间调用的,因此它是从一个不存在的表中选择的。

也尝试了 environment.rb,但该类尚不存在(并且可能会遇到与迁移相同的问题)

我不知道该方法放在哪里,所以它只会在服务器启动时运行,而不会在迁移期间运行。

最佳答案

您可以做一些事情来实际改善这一点。问题是当 rake 加载你的环境时你正在运行这段代码,但你真的只想在环境被你的 web 服务器实例加载时运行它。解决这个问题的一种方法是在 rake 加载您的环境时设置一个值,并且在设置该值时不执行您的初始化代码。您可以按如下方式执行此操作:

task :environment => :disable_initializer

task :disable_initializer do
   ENV['DISABLE_INITIALIZER_FROM_RAKE'] = 'true'
end

#In your initializer:

ENV['DISABLE_INITIALIZER_FROM_RAKE'] || MyModel.method_call

关于ruby-on-rails - Ruby on Rails,在服务器启动 2.3 上运行一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3790867/

相关文章:

ruby-on-rails - 启用 Rails 页面缓存会导致 http header 字符集消失

ruby-on-rails - 如何更改 Rails 中的邮件程序 Content-Transfer-Encoding 设置?

ruby-on-rails - 文章中的 ActionController::UrlGenerationError#edit

ruby-on-rails - 如何将 `.order` 调用添加到我检索到的 ActiveRecord 集合中?

ruby-on-rails - 使用另一个模型创建用户

ruby-on-rails - 从可安装引擎覆盖主机应用程序的根路由

ruby-on-rails - 如何格式化小数

ruby-on-rails - 尝试生成设计时出错 :install in Ruby on Rails

ruby-on-rails - RSpec - 调用应该被模拟的私有(private)方法的测试方法

java - 试图获取 rake 太阳黑子 :solr:run to execute