首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Ruby on Rails中由外部API支持的模型使用ActiveRecord接口

对Ruby on Rails中由外部API支持的模型使用ActiveRecord接口
EN

Stack Overflow用户
提问于 2013-03-10 01:09:58
回答 1查看 3.2K关注 0票数 7

我正尝试在我的Rails应用程序中使用从外部API检索信息的模型。我想要做的是以类似于ActiveRecord模型提供的方式访问我的数据模型(可能由多个API调用产生的信息组成)(具体地说,是关联和相同风格的链式查询方法)。

我最初的直觉是重新创建我想要的ActiveRecord部分,并合并这个API。

因为ActiveModel似乎只包含验证,所以我不确定这在这种情况下有多大帮助。

Here是我试图重新创建ActiveRecord功能时编写的一些代码的要点,大量借鉴了ActiveRecord源代码本身。

我的问题可以归结为:我可以通过实现上面指定的ActiveRecord变通方法或自己重新创建功能来获得我想要的功能(链接查询方法,关系),但这些真的是理想的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 01:41:10

记住,Rails在本质上仍然只是Ruby。

您可以将外部API表示为应用程序中的实例化类。

代码语言:javascript
复制
class Event
  def self.find(id)
    #...External http call to get some JSON...#
    new(json_from_api)
  end

  def initialize(json)
    #...set up your object here...#
  end


  def attendees
    #...external http call to get some JSON and then assemble it 
    #...into an array of other objects
  end
end

因此,你最终需要编写本地抽象来从api调用中创建ruby对象,你可能还可以在其中混入ActiveModel或Virtus,这样你就可以使用属性的散列赋值,以及表单的验证等。

看一下我为tube的TfL提要做的一个API抽象。service_disruption

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15313535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档