问题标签 [representable]

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 投票
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 回答
320 浏览

ruby-on-rails - 使 RoR 嵌套可表示为数组

在使用可表示的 gem时,我希望将一个对象嵌套在一个数组中,该数组只有一个对象。我看不出如何做到这一点。有任何想法吗?其原因在于 Google 跟踪代码管理器如何处理增强型电子商务跟踪。

会吐槽:

当我想要出来时:

0 投票
0 回答
402 浏览

ruby-on-rails - 可代表的宝石:处理嵌套文档(哈希)的麻烦

我正在使用 Representable gem,并按照自述文件中的说明访问嵌套文档中的属性。

代表和测试:

这里第一个断言通过但第二个断言(地点)失败。似乎我的nested块没有做任何事情,因为game.venue_id最终成为nil.

回顾自述文件,我意识到它说:

“请注意,::nested 内部是使用装饰器实现的。”

...并且代码示例使用Class SongRepresenter < Representable::Decorator. 所以我像这样重写了我的代表:

在我的测试中,我然后像这样设置game对象:

但是,我仍然遇到同样的问题:game.venue # => nil

任何有更多使用此宝石经验的人都可以指出我做错了什么吗?

0 投票
1 回答
310 浏览

ruby-on-rails - Rails 4:使用可表示的 gem 解析 JSONAPI

我有以下representer适用于平面 JSON 的工作:

我们现在正在实现JSONAPI 1.0的规范,我不知道如何实现能够解析以下 json 的表示器:

提前感谢您的提示和建议

更新:

包含工作解决方案的Gist

0 投票
1 回答
98 浏览

ruby-on-rails - Trailblazer 可表示的带有变量的更改属性名称

我想传入一个将用作属性名称的字符串变量。

例如,如果我有property_name一个包含字符串的变量,我想做这样的事情:

并且属性名称会根据我在变量中的文本而改变。

这样的事情可能吗?如果是这样,这样做的语法是什么?

谢谢你的帮助!

0 投票
1 回答
235 浏览

haskell - 如何仅使用分布式属性编写 Representable 实例?

假设我Distributive为某些复杂的自定义类型编写了一个实例,Foo. 是否可以仅使用其实例中可用的属性来编写Foo's实例?而且,如果不是,那么为什么是的超类?RepresentableDistributiveDistributiveRepresentable

0 投票
0 回答
43 浏览

haskell - 只改变 Store Comonad 的焦点?

我正在使用Control.Comonad.Representable.Store来表示游戏的网格对象;网格是:type Grid = Store (Compose Vector Vector) a; 其中 Vector 有一个由 索引的可表示实例Int

这允许我使用 comonadicextendexperiment网格方块与它们的邻居进行交互,并且我可以使用 Store monad 的焦点(由 表示pos)作为网格中的光标。

我正在寻找的是一种合理的方法来设置商店焦点处的值,或者使用的Representable实例Compose Vector Vector来设置/改变给定索引处的值。据我所知,使用 in 中的工具,ComonadRepresentable只能从结构中获取值,我找不到任何函数,例如:over :: ComonadStore s w => (a -> a) -> w a -> w a甚至Representable f => set :: f a -> Rep f -> a -> f a.

当然,我可以索引向量,调整值,然后将其设置回其索引;甚至用于tabulate重建结构但进行了调整,但这些听起来效率低下且不雅。似乎这些类型类的某种组合可以为我做到这一点;或者,如果我缺少其他一些约束/类型类,可以在这里提供帮助。

谢谢!

0 投票
1 回答
312 浏览

haskell - 镜头超过 Comonads 或 Representable

这是这个问题的一个更具体的变体:Mutate only focus of Store Comonad? ,为了避免一次问多个问题。

是否有任何与Control.Lens兼容的镜头允许我与共单子的焦点(来自 的值extract)或与存储共单子的索引/值(pos)进行交互?

似乎镜头在这里可能有用,但我一直找不到合适的东西;任何帮助将不胜感激,谢谢!

0 投票
1 回答
96 浏览

haskell - 如何在 Haskell 中使用类型的派生 Generic 实例从有限离散类型的值到 (Finite n) 并返回?

我有一个库,目前要求用户提供具有以下类型的辅助函数:

以便库实现可以使用具有以下类型的函数的非常有效的大小向量表示:

(MyType是离散的和有限的。)

假设派生一个Generic实例MyType是可能的,有没有办法tEnum自动生成,从而减轻我图书馆用户的负担?

我也想走另一条路;也就是说,自动推导出: