问题标签 [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 回答
172 浏览

ruby-on-rails - 每个模型使用多个状态时检查特定状态不起作用(aasm)

以下是我的booking模型中定义的状态。

第一状态

第二状态

现在,如果我这样做booking.aasm(:booking_state).current_state,它会返回正确的state名称。

但如果我这样做booking.aasm(:booking_state).pending?,它会返回下面error而不是布尔值。

这里可能是什么问题?我知道我是否只使用one state每个模型这有效。multiple states但在使用每个模型时不起作用。

0 投票
2 回答
1685 浏览

ruby-on-rails-5 - 使用 aasm gem 动态设置初始状态

我有一个 ActiveRecord 模型。我想在初始化时根据其属性设置初始状态。这是我的条件:

有没有办法做到这一点?这是个坏主意吗?

0 投票
1 回答
888 浏览

ruby-on-rails - 通过编辑操作更改 AASM 状态

我正在使用 AASM 来管理我的用户模型中的状态。

我想通过编辑操作更改状态。

为此,我在表单中使用 User.aasm_states_for_select 方法来填充状态的选择输入。当我点击提交按钮时,所有更改都会保存,包括状态名称。但是该状态的 AASM 事件没有被调用,它正在发生,因为只有字段状态发生了变化并且没有调用事件方法。

有没有人可以解决我的问题?

0 投票
1 回答
1438 浏览

ruby-on-rails - aasm 未定义方法“状态”

我正在配置我的 rails 5.1.4 模型以通过aasm支持状态,我遇到了问题,显然它没有初始化state模型的方法。当我打电话时似乎使用了item.save这打破了我的模型。其他方法似乎工作正常。

我像这样配置(并运行)我的迁移:

并在 item.rb 模型文件中配置:

在 Rails 控制台中,我键入:

更新 添加完整的堆栈跟踪:

0 投票
0 回答
228 浏览

ruby-on-rails - 将 aasm 状态值存储为大写字符串

我希望在我现有的项目中实现这个名为 aasm 的奇妙 gem。在我当前的项目中,我尝试添加 aasm 的状态列,值保存为大写字符串,如“草稿”、“已发布”等

如何在 aasm 中定义我的状态,以便在调用更改状态的事件时,该值以大写形式正确保存?

谢谢您的帮助。

0 投票
1 回答
727 浏览

ruby-on-rails - 无法测试 AASM gem 引发的错误

我无法测试抛出的 AASM 错误。

这是我的控制器方法:

我的规格如下所示:

测试失败(预期/期望的失败):

我只是无法找出通过测试的正确语法。我已经尝试了该expect行的一些变体,但似乎无法将其拼凑在一起。

任何指导表示赞赏。

0 投票
2 回答
567 浏览

ruby-on-rails - AASM 从一种状态转换,但不包括一种状态

我有带有 ActiveRecord 模型的 AASM。

有许多状态和事件及其转换。我想创建一个事件,该事件将允许从除一个状态之外的任何状态进行转换。

0 投票
1 回答
277 浏览

ruby-on-rails - ActiveAdmin + CanCan + AASM event switcher with AJAX

Inspired by activeadmin_addons and its Enum Integration I want to make similar functionality for AASM by letting diffent admin users change events depending on their abilities/roles for specific events/statuses in model.

0 投票
0 回答
84 浏览

ruby - Ruby AASM(充当状态机):处理付款:将前回调与警卫相结合

让我们假设一个非常简单的Payment类,如下所示:

因此,人们会调用payment.pay触发支付,进行适当的 API 调用。

非常重要的是,从created到的转换paid只有在付款实际成功时才会发生。

1)我会假设 API 调用应该放在事件的before回调中:pay,但是如果 API 调用不成功,这不会停止转换(假设 API 调用不会引发异常,它只是返回一个状态)。

2)然后我认为我应该将before回调与警卫结合起来;使用before回调来调用 API,并在模型上设置它的结果(使用attr_accessor例如)。然后,如果支付成功,守卫将只允许它从createdto状态转换。paid

这是在带有 aasm 的状态机中处理此类事件转换的惯用方式吗?我阅读了所有标记的堆栈溢出问题aasm和 gem 文档,但仍然对进行这些安全转换的最佳方法有疑问。

0 投票
0 回答
381 浏览

ruby-on-rails - 如何使用 AASM 设置状态?

我正在尝试构建一个包含测验的学习应用程序。测验由几个步骤组成。

aasm用来跟踪用户在测验中的状态。有3种状态:

我正在跟踪状态,因为当用户开始测验、注销然后返回时,他们将能够继续。

有 2 个事件转换: start&finish

我知道我在测验中调用这些来设置状态 - Quiz.start!&Quiz.finish!

我可以告诉用户处于什么状态,如果他们正在进行的测验步骤有父母,那么他们正在进行中,如果他们正在进行的测验步骤没有孩子,那么他们已经完成。像这样的东西:

我只想知道我把上面的逻辑放在哪里来设置状态?我不认为我把它放在我的控制器中。我必须把它放在测验课上吗?我是否使用其中包含上述逻辑的定义方法 set_state ?如果是这样,我该如何使用它?

我已经阅读了aasm文档并且有点明白了,但是我的大脑已经炸了,可以使用一些指导。

提前致谢。