gpt4 book ai didi

ruby-on-rails - 带参数回调后的 aasm

转载 作者:数据小太阳 更新时间:2023-10-29 07:27:04 25 4
gpt4 key购买 nike

我正在使用 aasm (以前是 acts_as_state_machine)我的 Rails 4 应用程序中的 gem。我的 Post 模型上有这样的东西

  ...
aasm column: :state do
state :pending_approval, initial: true
state :active
state :pending_removal

event :accept_approval, :after => Proc.new { |user| binding.pry } do
transitions from: :pending_approval, to: :active
end
end
...

当我调用 @post.accept_approval!(:active, current_user) 并且触发后回调时,在我的控制台中我可以检查什么是 user(那是传递给 Proc)并且它是 nil!

这是怎么回事?调用此转换的正确方法是什么?

最佳答案

在回调部分查看 aasm 文档。

...
aasm column: :state do
state :pending_approval, initial: true
state :active
state :pending_removal

after_all_transition :log_all_events

event :accept_approval, after: :log_approval do
transitions from: :pending_approval, to: :active
end
end
...
del log_all_events(user)
logger.debug "aasm #{aasm.current_event} from #{user}"
end

def log_approval(user)
logger.debug "aasm log_aproove from #{user}"
end

您可以调用带有所需参数的事件:

  @post.accept_approval! current_user

关于ruby-on-rails - 带参数回调后的 aasm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21416020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com