问题标签 [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.
ruby-on-rails - 如何在 AASM 中设置州级警卫
有没有办法定义在任何情况下has_legs?
进入状态(例如)之前检查的警卫(例如) running
?
在所有可能的回调列表中,有事件和转换的守卫,但没有事件的守卫。
我试图对模型进行条件验证。它适用于事件执行,但不适用于 aasm 方法(例如may_run?
)。
ruby-on-rails - 使用 rspec 测试 aasm 状态转换
我正在使用 aasm gem 来处理我的项目中的状态转换。我有一个看起来像这样的简单模型:
我正在尝试使用 rspec 匹配器中内置的 aasm 测试转换:
当我运行此规范时,它会返回以下错误:
我怎样才能解决这个问题?
state-machine - 保存记录时出现 NoMethodError(未定义方法 `aasm_state')
保存时payment request
,弹出错误:
保存时出现错误payment_requests_controller.rb
:
在此之前,有一个保存payment request
成功。宝石有什么问题AASM
?
ruby-on-rails - Aasm Gem 将参数传递给事件
我正在尝试使用 aasm ruby gem 和 rails 将参数传递到我的事件中。但是,每当我尝试按照文档中的示例进行操作时,都会收到错误消息Wrong number of arguments. Expected 0, got 2.
。我究竟做错了什么?
代码如下:
然后是调用代码
这似乎遵循示例,但我无法使其正常工作。任何帮助,将不胜感激。
ruby - 如何将参数传递给 AASM gem 中的 new/init
我正在尝试用 AASM gem 制作一个有限状态机链。我想检查一个字符串是否唯一(数据库中不存在)。
我写:
但是当我使用时Term.new("textstring")
,它不允许我传递我认为的参数,因为我得到一个错误:
是否可以在 AASM 中使用 init 传递参数?我想知道我该怎么做?
ruby - 在 AASM 的其他方法中使用初始化变量
我正在尝试t
在其他方法中使用变量,传入initialize
. 这是我的学期课程:
我创建了一个新实例,但打印文本的顺序不是我所期望的。我得到:
我不明白为什么最后会触发初始化方法,我@t
也想在aasm do events
. 我怎么能做到这一点,没有@t
得到nil
or t method not found
?
ruby - 之前回调在 AASM/Ruby 中不起作用
我正在尝试在 Ruby 中使用 AASM 处理有限状态机。这是我的代码的一部分:
我得到了puts日志:
但我希望,因为我使用了 before 回调:
我如何在活动开始前或参加活动时做某事?
ruby-on-rails - 没有路线匹配 [PUT] "/articles" 但我在路线中包含了 put 路线
嗨,我是 Rails 和 MVC 的新手,但我正在努力学习。现在我正在使用 AASM 从 in_draft 过渡到已发布。我能够在 Rails 控制台中进行更改,但是在尝试使用 link_to 时出现问题中的错误
这是我的路线
还有我的articles_controller 发布方法
ruby-on-rails - 在 Rails API 控制器中使用 AASM 的最佳实践
我们在 Rails 应用程序中使用acts_as_state_machine (AASM)来控制模型在传统有限状态机中从一个状态到下一个状态的流程。我们正在为我们的应用程序构建一个 API,作为其中的一部分,我们希望能够根据update
API 用户传递给 Controller 方法的状态更新 Rails 模型时触发状态转换。
状态机的简化版本如下所示:
一种选择是使用远程过程调用 (RPC) 样式,我们在其中提供/model/{ID}/publish
和/model/{ID}/retire
样式化端点。这是相当直截了当的,但不是很 RESTful。
我们考虑的另一个选项是检查参数并根据state
模型的传入属性进行转换。这感觉像是一种“更好”的方法,因为我们的 API 对消费者来说更简单,但它在逻辑方面给控制器增加了很多复杂性。
为 Rails API 实现触发 AASM 状态事件的最佳方法是什么?我们错过了一个选择吗?
state-machine - 一个状态可以出现在带有 AASM 的多状态机中吗?
Gem AASM 支持4.3 或更高版本的每个类的多个状态机。一个唯一的状态机选择器用于一个类中的每个状态机。一个状态可以出现在多个状态机中吗?
这是一个例子。状态walking
出现在:move
和:work
中。state walking
没事吧?或者我必须以不同的方式命名,例如:state walking_move
和state waling_work
。
所有初始状态也可以相同,例如initial_state
在不同的状态机中吗?