为什么ActiveRecord会查询数据库以了解数据库架构?它不能简单地阅读db/schema.rb
?
我有一些Sidekiq工作人员,因为性能无法连接到数据库。作业本身根本不使用数据库(或至少我预期如此):
n = Notification.new
n.body = cache["body"] # cache is from Redis
...
但第一行实际上是调用数据库的!
我能做些什么来让Rails读取schema.rb
,或者,无论如何,在没有数据库的情况下实例化Notification
?
我不想创建一个不会从ActiveRecord继承的单独模型。我需要相同的模型:有时它从数据库加载,有时从Redis加载。
答案 0 :(得分:0)
您可以创建一个单独的对象,该对象表示对象的Redis版本,并使用包含的模块在AR和Redis版本之间共享方法。 ActiveRecord :: Base实例不能在没有数据库的情况下使用。