如何在关注中定义state_machine?

伯克斯

我试图因素出一些双重逻辑成关注复制逻辑的一部分是state_machine

简化的DatabaseSiteSftpUser多包含,除其他外,这样的:

class Database < ActiveRecord::Base
  # ...
  state_machine :deploy_state, initial: :halted do
    state :pending
  end
end

我试图将其重构为一个问题:

module Deployable
  extend ActiveSupport::Concern

  included do
    state_machine :deploy_state, initial: :halted do
      state :pending
    end
  end
end

# Tested with:
class DeployableDouble < ActiveRecord::Base
  extend Deployable
end

describe DeployableDouble do
  let(:subject) { DeployableDouble.new }

  it "should have default state halted" do
    subject.deploy_state.must_equal "halted"
  end
end

然而,这不是实行正确的方法state_machnineconcern,因为这会导致:NoMethodError: undefined method 'deploy_state' for <DeployableDouble:0xb9831f8>这表明Double根本没有分配状态机。

included do真正实现这个正确的回调?可能是的问题state_machine,它需要ActiveRecord :: Base的子类左右吗?我没有得到什么?我对关注的概念非常陌生。

伯克斯

好的。我真的很傻。一个不应该extend带有模块的类,而是include那个模块。明显地。

# Tested with:
class DeployableDouble
  include Deployable
end

一旦写完,您将监督这些事情之一。另外,ActiveRecord::Base不需要扩展,因为state_machine只是普通的旧Ruby,并且可以在通用Ruby Object上工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Rails应用程序中使用state_machine gem触发事件

来自分类Dev

如何从使用state_machine转换为assm?Rails应用

来自分类Dev

如何在laravel 5.2中定义“关注”关系

来自分类Dev

过渡时的state_machine验证

来自分类Dev

使用state_machine更改费用的状态

来自分类Dev

CanCan和state_machine的问题

来自分类Dev

如何使用Ruby`state_machine` gem获得给定状态之前的状态列表?

来自分类Dev

如何为state_machine过渡回调编写rspec测试

来自分类Dev

如何为state_machine过渡回调编写rspec测试

来自分类Dev

如何使用Ruby`state_machine` gem获得给定状态之前的状态列表?

来自分类Dev

大礼包状态的state_machine中的“ next”在哪里?

来自分类Dev

Rails state_machine过渡导致密码验证错误

来自分类Dev

How to trigger an event using state_machine gem in a Rails application

来自分类Dev

Rails state_machine过渡导致密码验证错误

来自分类Dev

state_machine更新另一个模型

来自分类Dev

rails 4中的state_machine不正确地初始化状态列值

来自分类Dev

状态机Gem + Rails 4:#<Class:0x007faffc93fd60>的未定义方法`state_machine'

来自分类Dev

如何在休假代码中添加自动取消关注模块?

来自分类Dev

如何在PrimeFaces的dataTable的seletedRow中设置对inputtext的关注?

来自分类Dev

如何在MySQL中获得父母最受关注的孩子

来自分类Dev

如何在此代码中重点关注textarea

来自分类Dev

如何在Spring State Machine中获取下一个状态/事件

来自分类Dev

在state_machine gem上持久化之前进行验证

来自分类Dev

如何在关注或取消关注之前检查用户是否关注另一个(附加)

来自分类Dev

如何在获取关注者列表的同时查看我是否关注了关注者的天气?

来自分类Dev

如何在fsi中定义?

来自分类Dev

如何在fsi中定义?

来自分类Dev

如何在Google表格中获取超过100个用户名的Twitter关注者计数?

来自分类Dev

如何在PHP / MySQL中为项目的订阅者/关注者创建“提要”?

Related 相关文章

  1. 1

    如何在Rails应用程序中使用state_machine gem触发事件

  2. 2

    如何从使用state_machine转换为assm?Rails应用

  3. 3

    如何在laravel 5.2中定义“关注”关系

  4. 4

    过渡时的state_machine验证

  5. 5

    使用state_machine更改费用的状态

  6. 6

    CanCan和state_machine的问题

  7. 7

    如何使用Ruby`state_machine` gem获得给定状态之前的状态列表?

  8. 8

    如何为state_machine过渡回调编写rspec测试

  9. 9

    如何为state_machine过渡回调编写rspec测试

  10. 10

    如何使用Ruby`state_machine` gem获得给定状态之前的状态列表?

  11. 11

    大礼包状态的state_machine中的“ next”在哪里?

  12. 12

    Rails state_machine过渡导致密码验证错误

  13. 13

    How to trigger an event using state_machine gem in a Rails application

  14. 14

    Rails state_machine过渡导致密码验证错误

  15. 15

    state_machine更新另一个模型

  16. 16

    rails 4中的state_machine不正确地初始化状态列值

  17. 17

    状态机Gem + Rails 4:#<Class:0x007faffc93fd60>的未定义方法`state_machine'

  18. 18

    如何在休假代码中添加自动取消关注模块?

  19. 19

    如何在PrimeFaces的dataTable的seletedRow中设置对inputtext的关注?

  20. 20

    如何在MySQL中获得父母最受关注的孩子

  21. 21

    如何在此代码中重点关注textarea

  22. 22

    如何在Spring State Machine中获取下一个状态/事件

  23. 23

    在state_machine gem上持久化之前进行验证

  24. 24

    如何在关注或取消关注之前检查用户是否关注另一个(附加)

  25. 25

    如何在获取关注者列表的同时查看我是否关注了关注者的天气?

  26. 26

    如何在fsi中定义?

  27. 27

    如何在fsi中定义?

  28. 28

    如何在Google表格中获取超过100个用户名的Twitter关注者计数?

  29. 29

    如何在PHP / MySQL中为项目的订阅者/关注者创建“提要”?

热门标签

归档