问题标签 [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)
以下是我的booking
模型中定义的状态。
第一状态
第二状态
现在,如果我这样做booking.aasm(:booking_state).current_state
,它会返回正确的state
名称。
但如果我这样做booking.aasm(:booking_state).pending?
,它会返回下面error
而不是布尔值。
这里可能是什么问题?我知道我是否只使用one
state
每个模型这有效。multiple states
但在使用每个模型时不起作用。
ruby-on-rails-5 - 使用 aasm gem 动态设置初始状态
我有一个 ActiveRecord 模型。我想在初始化时根据其属性设置初始状态。这是我的条件:
有没有办法做到这一点?这是个坏主意吗?
ruby-on-rails - 通过编辑操作更改 AASM 状态
我正在使用 AASM 来管理我的用户模型中的状态。
我想通过编辑操作更改状态。
为此,我在表单中使用 User.aasm_states_for_select 方法来填充状态的选择输入。当我点击提交按钮时,所有更改都会保存,包括状态名称。但是该状态的 AASM 事件没有被调用,它正在发生,因为只有字段状态发生了变化并且没有调用事件方法。
有没有人可以解决我的问题?
ruby-on-rails - aasm 未定义方法“状态”
我正在配置我的 rails 5.1.4 模型以通过aasm支持状态,我遇到了问题,显然它没有初始化state
模型的方法。当我打电话时似乎使用了item.save
这打破了我的模型。其他方法似乎工作正常。
我像这样配置(并运行)我的迁移:
并在 item.rb 模型文件中配置:
在 Rails 控制台中,我键入:
更新 添加完整的堆栈跟踪:
ruby-on-rails - 将 aasm 状态值存储为大写字符串
我希望在我现有的项目中实现这个名为 aasm 的奇妙 gem。在我当前的项目中,我尝试添加 aasm 的状态列,值保存为大写字符串,如“草稿”、“已发布”等
如何在 aasm 中定义我的状态,以便在调用更改状态的事件时,该值以大写形式正确保存?
谢谢您的帮助。
ruby-on-rails - 无法测试 AASM gem 引发的错误
我无法测试抛出的 AASM 错误。
这是我的控制器方法:
我的规格如下所示:
测试失败(预期/期望的失败):
我只是无法找出通过测试的正确语法。我已经尝试了该expect
行的一些变体,但似乎无法将其拼凑在一起。
任何指导表示赞赏。
ruby-on-rails - AASM 从一种状态转换,但不包括一种状态
我有带有 ActiveRecord 模型的 AASM。
有许多状态和事件及其转换。我想创建一个事件,该事件将允许从除一个状态之外的任何状态进行转换。
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.
ruby - Ruby AASM(充当状态机):处理付款:将前回调与警卫相结合
让我们假设一个非常简单的Payment
类,如下所示:
因此,人们会调用payment.pay
触发支付,进行适当的 API 调用。
非常重要的是,从created
到的转换paid
只有在付款实际成功时才会发生。
1)我会假设 API 调用应该放在事件的before
回调中:pay
,但是如果 API 调用不成功,这不会停止转换(假设 API 调用不会引发异常,它只是返回一个状态)。
2)然后我认为我应该将before
回调与警卫结合起来;使用before
回调来调用 API,并在模型上设置它的结果(使用attr_accessor
例如)。然后,如果支付成功,守卫将只允许它从created
to状态转换。paid
这是在带有 aasm 的状态机中处理此类事件转换的惯用方式吗?我阅读了所有标记的堆栈溢出问题aasm
和 gem 文档,但仍然对进行这些安全转换的最佳方法有疑问。
ruby-on-rails - 如何使用 AASM 设置状态?
我正在尝试构建一个包含测验的学习应用程序。测验由几个步骤组成。
我aasm
用来跟踪用户在测验中的状态。有3种状态:
我正在跟踪状态,因为当用户开始测验、注销然后返回时,他们将能够继续。
有 2 个事件转换:
start
&finish
我知道我在测验中调用这些来设置状态 - Quiz.start!
&Quiz.finish!
我可以告诉用户处于什么状态,如果他们正在进行的测验步骤有父母,那么他们正在进行中,如果他们正在进行的测验步骤没有孩子,那么他们已经完成。像这样的东西:
我只想知道我把上面的逻辑放在哪里来设置状态?我不认为我把它放在我的控制器中。我必须把它放在测验课上吗?我是否使用其中包含上述逻辑的定义方法 set_state ?如果是这样,我该如何使用它?
我已经阅读了aasm
文档并且有点明白了,但是我的大脑已经炸了,可以使用一些指导。
提前致谢。