我从 ActiveResource 开始,但很快就碰壁了。在底层模型上覆盖 to_json 和 to_xml 时无法使 ActiveResource 工作。另外,无法使资源表示将链接注入到生成的 xml 文档中。哦,顺便说一句,我使用的是 Rails 3.2.1。
我做了一些研究,发现了它的宝石。试过了,由于某种原因对我不起作用。所以我的问题是:
如果我有一个资源(比如书籍)托管在一个网站(例如http://books.org)中,另一个资源(比如学生,http://students.org)托管在另一个网站上,怎么能我得到书来向学生展示自己的 HATEOS 荣耀?
我能够让图书资源以 XML 文档的形式呈现给提问的学生。我通过在学生网站中使用 vanilla Rails ActiveResource 来做到这一点。我创建了继承自ActiveResource::Base
. 然后我指定了self.site
and self.element_name
,之后我能够对远程图书站点执行一些基本的 ActiveRecord 式查询。唯一对我有用的是Book.all
and Book.find(1)
。即使这样也不令人满意,因为该表示包含所有数据库列,我想至少删除其中的一些列,但事实证明这是不可能的。
现在我已经放弃了这种方法,我想知道 Rails 中是否有一个工作示例可以构建更复杂的资源(即书籍)表示,其中包含将驱动应用程序状态传输的链接?我发现这样一个简单的要求在 Rails 中实现起来如此困难,这简直令人难以置信。我要做的只是创建一个资源的表示,其中将包含一些链接,这些链接将指导消费者发现该资源的功能。我最感兴趣的是实现工作流,这是一个分层的、剥洋葱类型的发现对话过程。