小编Mik*_*ike的帖子

如何将模块包含到另一个模块中(将AASM代码和自定义状态重构为模块)

我正在尝试重构一个超级脂肪模型,该模型有很多与状态和转换相关的ActsAsStateMachine代码,我希望将它重构为模块调用CallStates.

#in lib/CallStates.rb
module CallStates
    module ClassMethods
        aasm_column :status
        aasm_state :state1
        aasm_state :state2
        aasm_state :state3
    end

    def self.included(base)
        base.send(:include, AASM)
        base.extend(ClassMethods)
    end
end
Run Code Online (Sandbox Code Playgroud)

然后在模型中

include CallStates
Run Code Online (Sandbox Code Playgroud)

我的问题涉及如何将模块行为包含到模块中,以便单个模块可以包含在模型中.我已经尝试过class_eval也无济于事.感谢您对此事的任何深刻见解.

ruby refactoring

27
推荐指数
4
解决办法
3万
查看次数

标签 统计

refactoring ×1

ruby ×1