我是ruby和ruby的新手,我正在尝试建立一个博客。这个博客有文章,它们正在扩展ActiveRecord :: Base。
他们还与标签或评论有一些关系。
现在,我希望能够从数据库以外的其他来源加载文章。例如,来自我的网站,它不是同一个应用程序,并提供REST API来加载文章。
我怎么能这样做?
使用扩展ActiveRecord :: Base的ActiveArticle和不扩展的ExternalArticle以及实现相同功能的ArticleModule?
这似乎不是正确的方法。 感谢
答案 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。