如何在rails中创建不持久的活动记录类实例?

时间:2013-12-07 11:23:33

标签: ruby-on-rails ruby activerecord strategy-pattern

我是ruby和ruby的新手,我正在尝试建立一个博客。这个博客有文章,它们正在扩展ActiveRecord :: Base。

他们还与标签或评论有一些关系。

现在,我希望能够从数据库以外的其他来源加载文章。例如,来自我的网站,它不是同一个应用程序,并提供REST API来加载文章。

我怎么能这样做?

使用扩展ActiveRecord :: Base的ActiveArticle和不扩展的ExternalArticle以及实现相同功能的ArticleModule?

这似乎不是正确的方法。 感谢

1 个答案:

答案 0 :(得分:3)

构成Rails模型的很大一部分不在ActiveRecord,而在ActiveModel

class ExternalArticle
  include ActiveModel::Model
end

将为您提供验证,回调,与URL帮助程序的兼容性等功能。

有关简短概述,请参阅Railscast #219

但是,ActiveModel不会为您提供与其他模型的关联。如果您需要,activerecord-tableless gem可能有帮助。

编辑:

我现在看到你的非持久化模型对象来自REST API。看看ActiveResource;它曾经是Rails的一部分,但是从Rails 4开始被提取到一个单独的gem中。它基本上是用于远程对象的ActiveRecord。