gpt4 book ai didi

ruby-on-rails - 如何让 Rails 3 在开发模式下重新加载 STI 类?

转载 作者:数据小太阳 更新时间:2023-10-29 08:01:57 25 4
gpt4 key购买 nike

切换到 Rails 3 后,我注意到我必须重新启动我的服务器才能使 STI 模型类随每个请求重新加载。例如,假设我有这个:

# app/models/vehicle.rb
class Vehicle < ActiveRecord::Base
end

# app/models/car.rb
class Car < Vehicle
end

如果我对 Vehicle 进行了更改,更改将在下一个请求中加载。但是,如果我对 Car 进行更改,我必须重新启动服务器才能加载它。

有什么解决办法吗?

我正在运行 WEBrick,但我没有 promise 。

最佳答案

我们发现我们需要 zetetic 的解决方案和一些额外的代码来实现它(至少在 Rails 3.0.9 中)。对于上述问题,解决方案类似于:

在 config/environments/development.rb 中:

  config.after_initialize do
["vehicle"].each do|dep|
require_dependency( (Rails.root + "app/models/#{dep}").to_s )
end
end

在 app/controllers/application_controller.rb 中:

class ApplicationController < ActionController::Base
if Rails.env == 'development'
require_dependency( (Rails.root + "app/models/vehicle").to_s )
end
...

development.rb 中的代码处理类的初始加载,ApplicationController 中的代码处理后续请求。

关于ruby-on-rails - 如何让 Rails 3 在开发模式下重新加载 STI 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com