有没有一种方法可以实例化ActiveRecord模型,而不必连接到它的数据库



我刚刚意识到,当你进行时,标准的ActiveRecord实际上会命中数据库

person = Person.new(:name => "test")

我怀疑ActiveRecord这样做是为了检查哪些字段可用于模型。

然而,我们的遗留数据库只是偶尔可用。这意味着我们的测试套件不能一直运行。在没有数据库的情况下,有什么技巧可以让它发挥作用吗?

如果不可能,我们想了一些替代方案:

  • 拥有数据库的本地副本并处理该副本
  • 使用另一个ORM来解决这个问题(DataMapper)

欢迎提出任何建议。

只有当所接触的数据没有从其他地方更改时,才可以使用本地副本!否则,很快就会发生数据库灾难。

你的怀疑也是对的。ActiveRecord检查数据库中的字段,因此它需要一个连接。当你想继续使用ActiveRecord时,我认为没有办法解决这个问题。我认为您需要解决根本问题,并运行一个始终可用的数据库!

尝试attr_accessor :your_method_name您也可以使用read_attribute/write_attribute

相关内容

最新更新