问题标签 [rails-roar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
218 浏览

ruby-on-rails - 在多个 Rails 应用程序中使用 API 中的模型

我正在为一系列应用程序设置集中式数据管理系统 + CAS,这些应用程序当前在许多数据库中存在重复数据,这对管理来说是一场噩梦。

我已经用 ruby​​cas-server 和 ruby​​cas-client 很好地实现了 CAS 系统,但是在客户端应用程序之间实际共享用户数据和其他模型时遇到了问题。例如:

  • CAS/中央系统(共享数据库)将基本用户公开为 JSON
  • App1 向用户扩展了有关最喜欢的颜色的信息
  • App2 只关心拥有一个用户

我希望能够让 App1 添加它关心从 API 返回的对象的数据,而不会给 App2 带来这些信息的负担。

我目前正在为可以使用 JSON 的客户端应用程序编写一个 gem(使用 ActiveResource 或 ROAR,还不确定是哪个),但是客户端应用程序需要使用当前管理的附加数据来装饰/扩展其模型活动记录。所以我不确定扩展这些 gem 提供的实例的最佳方法是什么。

到目前为止,我已经尝试过让 gem 包含一堆模块,然后 ActiveRecord 模型可以包含这些模块,但这在需要处理类方法时会出现问题(不是不可克服的,而是任何方法)。在这种情况下,我尝试四处寻找最佳实践的资源/指南,但一无所获。

tl;dr 摘要:多个客户端应用程序需要使用和扩展 JSON api 提供的数据。这样做的推荐做法是什么?

0 投票
3 回答
823 浏览

ruby-on-rails - 使用 REST API Rails

我已经看过这个问题,但它已经很老了,我觉得现在还有其他替代 ARes 的方法。

鉴于许多人似乎认为 ActiveResource 有点过时和重量级,我看过Api SmithHerRoar,当然还有 ARes 。

这些宝石中的哪一个将是最可靠且面向未来的替代品?

0 投票
1 回答
1022 浏览

ruby-on-rails - 如何从代表中过滤属性/集合?

例如,我有一个代表看起来像:

在控制器中,我将其用作:

对于另一个我不想collection :assets被呈现的动作。我试过了

但它不起作用。我应该如何将参数传递给代表?

0 投票
1 回答
739 浏览

ruby-on-rails-3 - ROAR:与 jbuilder 或 rabl 相比有什么好处?

我已经阅读了https://github.com/apotonick/roar,似乎对 ROAR 进行了很多思考。但是在使用 jbuilder 的相当标准的 Rails 驱动的 JSON API 的上下文中,我仍然无法立即看到 ROAR 提供了哪些好处。

我错过了什么?

0 投票
1 回答
271 浏览

json - 如何阻止 Grape 对我的输出进行两次 JSON 编码?

我目前正在实现一个基于 JSON 的 Grape API。我已经为 JSON 序列化和反序列化集成了 roar。执行以下代码时,似乎 JSON 被编码了两次,导致响应带有斜杠。Grape 是否有必要在需要时抑制 JSON 解码?

json = UserRepresenter.new(user).to_json { status: StatusResponse::VALID, message: json }

0 投票
1 回答
2085 浏览

ruby - NameError:Sinatra 中未初始化的常量 Roar::JSON

我正在 Ruby/Sinatra 中构建一个应用程序,我想将 Roar 用于 JSON(和 Hal)输出。目前我在使用 Roar 时遇到问题。

这些 gem 已安装:

这是在我的 app.rb

但是当我启动我的应用程序时,我得到以下信息:

app.rb:11:in `': 未初始化的常量 Roar::JSON (NameError)

我不知道如何解决这个问题。

这是我使用它的课程:

0 投票
2 回答
1813 浏览

ruby-on-rails - 如何为 ROAR 代表动态添加属性?

我正在使用 ROAR 为 Rails 应用程序实现 API。此应用程序处理可以具有主题描述等属性的票证,但也具有用户定义的属性。为简单起见,我们假设一张票看起来像:

此类票证所需的 JSON 输出如下所示:

现在您可能已经看到了问题所在。所有属性都是根对象的直接子对象,这意味着我不能将其写为代表:

ROAR 是否提供了一些机制来实现这一目标?例如,在实际实例的上下文中执行的回调,例如

在 ROAR 中是否有类似的东西我忽略了实现这一点?

我查看了ROAR的文档和可表示的文档,但找不到任何东西。

免责声明

我试图简化实际情况以使问题更具可读性。如果您认为缺少重要信息,请告诉我。谢天谢地,我会提供更多细节。

超出范围

请不要讨论选择的 JSON 格式是好还是坏,我想评估 ROAR 是否支持它。

0 投票
1 回答
467 浏览

ruby-on-rails - 基于使用 ROAR gem 的标准为同一类创建多个表示的策略?

这实际上是关于如何在 Rails 中使用 Roar 和可表示的最佳实践/使用问题,因为我没有找到任何示例。这里有两个场景。我使用装饰器模式。

场景一:

假设我有一个具有多个属性和关联的 Product 类。默认情况下,当有人向 api.com/products/1 发出请求时 - 我想展示我所拥有的一切,但如果有人向 api.com/products/1/inventory_details 这样的另一个动作发出请求 - 我只想要显示与库存有关的有限视图(以便更快地查找库存)或者如果有人向 api.com/products/1/assembly_details 提出请求 - 我想返回相关子组件的矩阵以及一些相关的产品详细信息.

方案 1 的问题:

  1. 我是为每个案例创建一个特定的代表,例如 ProductRepresenter、ProductInventoryDe​​tailRepresenter、ProductAssemblyDetailRepresenter,还是在 ProductRepresenter 中使用某种流控制?
  2. 如果我为同一个类创建多个代表,我如何使用代表/respond_with 模式与 respond_to/render ?
  3. 我可以在操作级别上覆盖它吗?

场景二:

假设我有 api.com/products/1 ,我的内部应用程序都可以调用它,但我也想向我的客户公开。但是,我不希望我的客户看到某些属性,例如库存详细信息,或者可能只是一两个属性。此外,根据员工的访问级别,我想限制他们的视图/表示。

方案 2 的问题:

  1. 我是为每个案例创建一个特定的表示器,例如 ProductRepresenter、ProductClientViewRepresenter,还是在 ProductRepresenter 中使用某种流控制?
  2. 如果我为同一个类创建多个代表,我如何使用代表/respond_with 模式与 respond_to/render ?
  3. 我可以在操作级别上覆盖它吗 - 基于访问类型,例如:admin vs inventory_user vs shipping_user?

任何建议都会被采纳。(我将在 Roar-Rails gem 的 github 上交叉发布此内容)

0 投票
1 回答
787 浏览

ruby-on-rails - 选项葡萄代表

我正在与 Representers 一起使用 Rails API,使用以下 gem:GrapeRoarGrape-Roar

现在,我尝试根据我从 API 端点传递的条件添加条件以在我的表示器中包含(或不包含)某些属性,如此处所述请注意,可表示的 gem 由 Roar gem 使用)

我可能忽略了一些东西,但我不知道如何将选项传递给我的代表,所以我可以根据条件呈现属性

例如,在我的一个葡萄端点中,我调用:

present payment_object, with: PaymentRepresenter, include_orders: true

使用 PaymentRepresenter 呈现支付对象。如您所见,我也想包含相关的付款订单,因此在我的付款代表中,我尝试这样做:

然而 args[:include_orders] 只是 nil

有谁知道我在这里做错了什么?

提前致谢!

0 投票
1 回答
88 浏览

ruby - 如何使用 Roar::Decorator 渲染纯 XML 属性

我正在尝试在 Roar::Decorator 中呈现纯 XML 输出。由于某种原因,无法获得未转义的输出。

我有这堂课:

和以下代表:

继承自Roar::Decorator并包括Roar::XML

但是,当我创建我的代表实例时

并创建 XML 输出.to_xml,输出为

我尝试html_safe在代码中的多个位置使用,但没有改变结果。