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

ruby-on-rails - 使用 AASM 的 ActiveRecord 模型上的延迟作业 - 吞下失败的方法错误,改为抛出“错误数量的参数”

在我的 Rails 4 应用程序中,我有一个带有 AASM 列的 ActiveRecord 模型。当我使用带延迟作业活动记录的失败方法时,它会吞下错误并抛出与 AASM 有关的其他内容。

MyModel.joberror可预见地失败了ZeroDivisionError。但是,当我从 delay_job_active_record ( MyModel.delay.joberror) 内部运行此方法时,会吞下正确的错误,而是抛出此错误:

完整的堆栈跟踪在这里

这指向 aasm gem 中的代码,尽管此方法根本不涉及 aasm,甚至也不涉及MyModel. 但是,如果我注释掉 aasm 代码,它会返回正确的 ZeroDivision 错误。

我已经读到delayed_job 对您希望它执行的方法进行了一些序列化,但我不明白这样做的后果足以知道它为什么会导致这个或如何解决它。

0 投票
1 回答
486 浏览

ruby-on-rails - 在 Rails 中获取 AASM Gem 生成的作用域的补码

这个问题是真正打算由AASM gem 开发人员来回答的。

我在我的 rails 应用程序模型 ( Mongoid )中使用AASM gem。我知道您会为每个定义的状态自动生成范围。例如,拥有这个...

...允许我这样做:Order.pendingOrder.received

我的问题很简单,您是否还生成范围来获得给定状态的补码?类似于:Order.not_pending以获取状态不同于“待处理”的订单

我知道很容易建立自己的范围来获得它,就像这样......

...但我想确保你没有定义它,因为如果你这样做,我宁愿使用你的范围而不是我自己的。

0 投票
1 回答
428 浏览

ruby-on-rails-4 - Ruby on rails AASM 通过单击按钮更改过渡

我想更改视图的状态。模型

控制器

看法

路线

当我点击一个链接时,我有这样的错误:

我对方法 to_activated 有同样的错误

请帮忙

0 投票
2 回答
2938 浏览

ruby-on-rails - 向 rails aasm 状态添加验证

state_machine我曾经做过

如果用户不存在,它将自动取消转换。

我们如何为aasm中的特定状态添加类似的验证?

0 投票
2 回答
1024 浏览

ruby-on-rails - 如何为 AASM 中的任何“事件”进行通用回调

我有一个状态机,在 Rails 应用程序(带有 ActiveRecord)中,用AASM定义,它有很多回调。其中一些回调包含重复的代码。例如,在每次状态变化时,我们都需要建立和保存记录并发送邮件。

Intead,我想要一个通用回调,并且对于需要它的事件,还有一个特定的回调。

这可能吗?而且,非常重要的是:该代码如何访问被触发事件的名称?

0 投票
1 回答
486 浏览

ruby-on-rails - 在与同一个 STI 表的 has_many 关系的查询中重用范围

Child1 和 Child2 与 Entity 具有 STI 关系,而 Child2 具有_many Child1。Child1 有一个由 AASM 管理的状态列。

我想为 Child1 上的每个状态在 Child2 上创建一个范围。它应该返回具有一个或多个处于该状态的 Child1 记录的所有 Child2 记录。理想情况下,它将重用 AASM 自动创建的范围,例如

...它又好又干净又干。不幸的是,这生成的 SQL 被同一张表上的连接混淆了:

where 子句的最后一部分应该是child1_entities.status = 'owned'.

我可以用 SQL 或 Arel 编写整个查询,但我希望找到一些东西,即使我必须去那里为 child1 连接指定别名,我仍然可以重用我在 Child1 中已有的范围。

0 投票
1 回答
543 浏览

ruby-on-rails - aasm gem 和 ActionMailer 中的回调

我在 Rails 上学习 ruby​​,但在使用 aasm 回调和 actionmailer 时遇到了麻烦。我有一个酒店模型。这是一个代码:

如您所见,当他添加的酒店状态发生更改时,用户必须收到电子邮件。这是我写的内容,但它不是解决方案,因为每次管理员更新酒店的“待定”状态时,用户都会收到电子邮件。

所以我想我需要使用回调,但我不知道如何调用

从模型。我试过了

但这不起作用。我真的没有选择并寻求任何帮助。谢谢!

更新 1: 感谢 Amit Sharma!我做了这些改变,现在得到

看起来我传递给 changed_state_email() 方法的用户对象是空的,但我不知道为什么。这也是我的邮件文件:

这是 puts "====#{self.inspect}" 的结果:

F.====# F.====#

更新 2: 它返回用户对象。控制台输出:

0 投票
1 回答
329 浏览

ruby-on-rails - 如何在 aasm 回调中调用 ActionMailer 方法?

我在 Rails 上学习 ruby​​,但在使用 aasm 回调和 actionmailer 时遇到了麻烦。我有一个酒店模型。这是一个代码:

如您所见,当他添加的酒店状态发生更改时,用户必须收到电子邮件。这是我写的内容,但它不是解决方案,因为每次管理员更新酒店的“待定”状态时,用户都会收到电子邮件。

所以我想我需要使用回调,但我不知道如何调用

从模型。我试过了

但这不起作用。我真的没有选择并寻求任何帮助。谢谢!

0 投票
1 回答
286 浏览

ruby-on-rails - AASM4.1.1 不能在 Rails4 上运行

我有一个模型,其中包含一个名为“状态”的字段。我已将其更改为 DB 中的字符串类型。我还在 AASM 中使用枚举。
这是我的代码:

我这样应用它:

无论我打电话card.publish还是card.delete,我都会收到这样的错误:

这让我困惑了几天。任何帮助将不胜感激。

0 投票
2 回答
1538 浏览

ruby-on-rails - 如何在 Rails 中使用模型关注点

我试图将模型的不同部分移入关注点。其中两个是 AASM 定义的状态,以及 Paperclip 的附件。

所以,我将相关代码移动到单独的文件中。

应用程序/模型/关注/user_aasm.rb

在我的 user.rb 中,我做

我收到以下错误:

我想知道我在代码中出了什么问题。如何以正确的方式使用它?