问题标签 [aasm]

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

ruby-on-rails - 如何在 AASM 中设置州级警卫

有没有办法定义在任何情况下has_legs?进入状态(例如)之前检查的警卫(例如) running

在所有可能的回调列表中,有事件和转换的守卫,但没有事件的守卫。

我试图对模型进行条件验证。它适用于事件执行,但不适用于 aasm 方法(例如may_run?)。

0 投票
1 回答
3592 浏览

ruby-on-rails - 使用 rspec 测试 aasm 状态转换

我正在使用 aasm gem 来处理我的项目中的状态转换。我有一个看起来像这样的简单模型:

我正在尝试使用 rspec 匹配器中内置的 aasm 测试转换:

当我运行此规范时,它会返回以下错误:

我怎样才能解决这个问题?

0 投票
3 回答
1083 浏览

state-machine - 保存记录时出现 NoMethodError(未定义方法 `aasm_state')

保存时payment request,弹出错误:

保存时出现错误payment_requests_controller.rb

在此之前,有一个保存payment request成功。宝石有什么问题AASM

0 投票
1 回答
709 浏览

ruby-on-rails - Aasm Gem 将参数传递给事件

我正在尝试使用 aasm ruby​​ gem 和 rails 将参数传递到我的事件中。但是,每当我尝试按照文档中的示例进行操作时,都会收到错误消息Wrong number of arguments. Expected 0, got 2.。我究竟做错了什么?

代码如下:

然后是调用代码

这似乎遵循示例,但我无法使其正常工作。任何帮助,将不胜感激。

0 投票
1 回答
231 浏览

ruby - 如何将参数传递给 AASM gem 中的 new/init

我正在尝试用 AASM gem 制作一个有限状态机链。我想检查一个字符串是否唯一(数据库中不存在)。

我写:

但是当我使用时Term.new("textstring"),它不允许我传递我认为的参数,因为我得到一个错误:

是否可以在 AASM 中使用 init 传递参数?我想知道我该怎么做?

0 投票
1 回答
295 浏览

ruby - 在 AASM 的其他方法中使用初始化变量

我正在尝试t在其他方法中使用变量,传入initialize. 这是我的学期课程:

我创建了一个新实例,但打印文本的顺序不是我所期望的。我得到:

我不明白为什么最后会触发初始化方法,我@t也想在aasm do events. 我怎么能做到这一点,没有@t得到nilor t method not found

0 投票
1 回答
227 浏览

ruby - 之前回调在 AASM/Ruby 中不起作用

我正在尝试在 Ruby 中使用 AASM 处理有限状态机。这是我的代码的一部分:

我得到了puts日志:

但我希望,因为我使用了 before 回调:

我如何在活动开始前或参加活动时做某事?

0 投票
2 回答
240 浏览

ruby-on-rails - 没有路线匹配 [PUT] "/articles" 但我在路线中包含了 put 路线

嗨,我是 Rails 和 MVC 的新手,但我正在努力学习。现在我正在使用 AASM 从 in_draft 过渡到已发布。我能够在 Rails 控制台中进行更改,但是在尝试使用 link_to 时出现问题中的错误

这是我的路线

还有我的articles_controller 发布方法

0 投票
1 回答
524 浏览

ruby-on-rails - 在 Rails API 控制器中使用 AASM 的最佳实践

我们在 Rails 应用程序中使用acts_as_state_machine (AASM)来控制模型在传统有限状态机中从一个状态到下一个状态的流程。我们正在为我们的应用程序构建一个 API,作为其中的一部分,我们希望能够根据updateAPI 用户传递给 Controller 方法的状态更新 Rails 模型时触发状态转换。

状态机的简化版本如下所示:

一种选择是使用远程过程调用 (RPC) 样式,我们在其中提供/model/{ID}/publish/model/{ID}/retire样式化端点。这是相当直截了当的,但不是很 RESTful。

我们考虑的另一个选项是检查参数并根据state模型的传入属性进行转换。这感觉像是一种“更好”的方法,因为我们的 API 对消费者来说更简单,但它在逻辑方面给控制器增加了很多复杂性。

为 Rails API 实现触发 AASM 状态事件的最佳方法是什么?我们错过了一个选择吗?

0 投票
0 回答
199 浏览

state-machine - 一个状态可以出现在带有 AASM 的多状态机中吗?

Gem AASM 支持4.3 或更高版本的每个类的多个状态机。一个唯一的状态机选择器用于一个类中的每个状态机。一个状态可以出现在多个状态机中吗?

这是一个例子。状态walking出现在:move:work中。state walking没事吧?或者我必须以不同的方式命名,例如:state walking_movestate waling_work

所有初始状态也可以相同,例如initial_state在不同的状态机中吗?