问题标签 [trailblazer]

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 回答
479 浏览

ruby-on-rails - 使用 Rspec 隔离测试细胞 - 有什么建议吗?

我正在尝试 Apotonick 的 Trailblazer gem,它在 Rails 之上带来了更多的结构,我真的很喜欢我迄今为止尝试过的东西,虽然还没有完全接受它。这是 Trailblazer 的一大优势,您可以逐步深入了解它,逐步将其引入您的 Rails 项目。我买了 Trailblazer 的书,我现在正在关注这本书,这引出了我的问题。

我正在开发示例应用程序(@see https://github.com/apotonick/gemgem-trbrb),但我使用的是 rspec。

我想单独测试细胞输出。在本书中,测试框架是 Test::Unit 并且一些辅助方法附带了用于 Test::Unit 的单元格。

使用 rspec 这是另一个故事......我尝试了 rspec-cells 但它似乎不适用于 Trailblazer 中使用的当前单元版本(4.0)。因此,我尝试进行一些鲑鱼编码,目标是尽可能使用最小的设置来检索单元格的输出。这导致了一个带有简单助手的模块

这是代码(也在这里:https ://github.com/demental/gemgem-trbrb/blob/3ec9df1d5f45b880f834486da3c150d4b65ec627/spec/support/cells.rb )

我需要制作存根 url_options 方法的原因是 pathHelpers 方法可以在单元格视图中工作,而无需设置完整的控制器(带有完整的请求对象)。

我喜欢它的一种方式,它使设置非常简约。但我想知道它是不是太假了,因为我只是模仿一个控制器,但我觉得我没有摆脱它的依赖。你怎么看 ?

0 投票
1 回答
167 浏览

ruby-on-rails - 创建集合的操作

我想创建一个接受 json 数组并创建多个对象的操作。类似的东西Books::CreateCollection。我相信我需要以某种方式重用Books::Create- 只需多次调用它并将整个循环包装在事务中。

json:

但是合同Books::CreateCollection应该是什么样子的呢?

开拓者0.3.0

0 投票
3 回答
107 浏览

ruby-on-rails - 多个类中的相同继承模式

我有以下情况:

这种情况我很多。就像,我的应用程序中有大约 40IdenticalDescendent个课程。我喜欢这种模式,它允许我调用A::IdenticalDescendentorB::IdenticalDescendent或访问不同域中的某些相关行为(由Aor指定B)。出于某种原因,我不能通过重新设计行为聚类来完全抽象出问题。

所以我的问题的一般形式是如何在所有这些中自动生成 IdenticalDescendent。有其后代CommonParent不调用此模式,因此该操作可能不应该在那里发生。我想它应该发生在 mixin 或其他东西中,但我发现如果我只是尝试这样做:

我不知道如何编写CommonBehaviour以允许 IdenticalDescendent 从包含类下降。

帮助我 StackOverflow,你是我唯一的希望。

0 投票
1 回答
555 浏览

ruby-on-rails-4 - 在 Rails4 中,使用 Trailblazer,我如何访问 current_user

我们正在使用 Trailblazer 构建 Rails4 应用程序。我以前从未与 Trailblazer 合作过,我对如何做事感到困惑。

我们正在建立一个拍卖网站。我以前使用的是传统控制器,并且这个路由端点工作正常:

但现在我想使用 Representer 类将其创建为 Trailblazer api。

所以在 routes.rb 我添加了一些“费用”:

我创建了这个 Api,但复制并粘贴了另一个:

我用一个简单的代表测试了上面的内容,一切都很好,所以到目前为止一切都很好。如果我从代表返回简单数据,那么我可以在这里看到它:

http://localhost:3000/api/charges.json

但我需要获取 current_user。这是怎么做到的?现在,这不起作用:

current_user_id 存在于我的传统控制器中,因为我们设置了 Devise,因此我的传统控制器继承了它:

但是有什么方法可以在 Trailblazer Representer 中获得它?

0 投票
1 回答
450 浏览

ruby-on-rails - Trailblazer 和 Minitest - NameError: 未初始化的常量 MiniTest

环境:

我正在研究 Trailblazer 书中的示例,但遇到了我不理解的情况。按照书中给出的设置,当我使用bundle rake test/concerns/ar_invoice/crud_test.rb它运行特定测试时,它会按预期运行。但是,如果我只是运行,bundle rake test那么我会看到:

文件 crud_test.rb 包含以下内容:

.test/test_helper.rb 看起来像这样:

并且env | grep RAILS_ENV不产生任何输出。

我在设置中还缺少什么?不应该bundle rake test简单地选择 crud_test.rb 文件并以与在命令行上显式命名该文件时相同的方式运行测试吗?

0 投票
0 回答
148 浏览

ruby-on-rails - Trailblazer Rails 表单错误“未知关键字:doc、options、represented、decorator、binding、as、index、model、collection”

我将trailblazergem 与 Rails 一起使用,并试图让它与具有嵌套模型的表单一起使用。到目前为止,我只是在尝试调整createupdate操作以使用操作。更新预先存在的嵌套模型可以正常工作。创建新的不会。

首先,在通过表单添加新的嵌套模型时,我得到了Your :populator did not return a Reform::Form instance错误,当我添加一个填充器时它就消失了。现在我要unknown keywords: doc, options, represented, decorator, binding, as, index, model, collection离开了Uber::Options::Value#method! uber (0.0.15) lib/uber/options.rb, line 89。我不知道如何解释这一点。

0 投票
1 回答
276 浏览

ruby-on-rails - 用开拓者替换 ActiveRecord

环境:

我正在完成开拓者书中的练习,并尝试将现有项目的元素映射到书中的示例。在手头的项目中,我们使用 AR 继承为单个下级表创建模型别名。下面给出一个例子:

这种工作方式是从单表继承中借用的,因为每个变体模型定义的列值是“固定的”,但所有变体的基础表和行都是相同的。

我对如何operation.rb在 ar_invoice 关注的文件中处理这件事感到有些困惑。这个 AR 设置是在与 AR 处理继承的一些斗争之后演变而来的,所以我对使用 Trailblazer 演示的更简单的方法非常感兴趣。

0 投票
3 回答
951 浏览

ruby-on-rails - Kaminari::Cells 分页方法不渲染任何内容

我正在使用 Kaminari::Cells gem,当我在单元格视图中使用 paginate 方法时,没有任何显示。我检查了一下,分页方法只是返回“\n”。

0 投票
1 回答
98 浏览

ruby-on-rails - 问答。Trailbalzer 测试 - 合同方法的含义

以下问答基于 Trailblazer book pp. ~50-60 中给出的示例,适用于我的具体要求。如果按照书中的说明进行操作,您可以简单地将ARInvoicear_invoice视为Thing并获得一般漂移。thing

我的operation.rb文件是:

我从开拓者的书中改编了这个测试:

我得到了这个错误:

但我也看到了这个:

因此,设置了 test_time 值。为什么它没有进入effective_from属性?

我在下面给出的答案。

0 投票
1 回答
750 浏览

ruby-on-rails - 运行操作时出现开拓者错误:“NoMethodError:未定义的方法‘has_key?’ 对于零:NilClass”

当我尝试Create使用开拓者 gem 运行操作时,我收到此错误: