有没有办法在没有连接到数据库的情况下实例化ActiveRecord模型?

时间:2012-03-05 11:37:44

标签: ruby-on-rails activerecord

我刚刚意识到,当您执行

时,标准的ActiveRecord实际上会访问数据库
person = Person.new(:name => "test")

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

但是,我们的旧数据库只是偶尔可用。这意味着我们的测试套件无法一直运行。在没有数据库的情况下完成这项工作是否有任何技巧?

如果不可能,我们会考虑一些替代方案:

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

欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

只有触摸的数据不会从其他任何地方更改时,才能使用本地副本!否则,您很快就会遇到数据库灾难。

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

答案 1 :(得分:0)

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