Ruby on rails aasm轨道中的零状态

Ruby on rails aasm轨道中的零状态,ruby-on-rails,ruby,ruby-on-rails-4,aasm,Ruby On Rails,Ruby,Ruby On Rails 4,Aasm,我的问题有两部分 如何将nil定义为任何状态机的初始状态 如何将任何状态转换为零 如果我们这样做,那么它会将“nil”保存为值notnull aasm(:aasm_state, column: :status) do state :nil, initial: true state :state1, :state2, :state3, :state4 event :change_state do transitions from: :state1, to: :state2

我的问题有两部分

  • 如何将nil定义为任何状态机的初始状态
  • 如何将任何状态转换为零
  • 如果我们这样做,那么它会将“nil”保存为值notnull

    aasm(:aasm_state, column: :status) do
      state :nil, initial: true
      state :state1, :state2, :state3, :state4
      event :change_state do
        transitions from: :state1, to: :state2
      end
    end
    
    我如何修改下面的代码来完成上述两项或其中一项

    aasm(:aasm_state, column: :status) do
      state :state1, :state2, :state3, :state4
      event :change_state do
        transitions from: :state1, to: :state2
      end
    end
    

    我没有看到文档中提到的内容。。。但是我不认为这是可行的,因为
    aasmgem
    根据
    状态添加了各种方法/事件。因此,例如
    job.nil?
    可能会与
    job.nil产生冲突
    会出错为什么要使用
    nil
    作为有效状态?对于那个状态,没有更好的名称了吗?比如
    new
    initial
    pending
    ,等等?@spickermann我需要将模型中的任何属性(比如x)设置为null,如果它满足给定的条件,但即使我更新了同一模型的任何其他属性(比如y),那么属性x也会使用初始状态进行更新。我想阻止属性x的更新。@shubhamsaxena你知道吗?我有一个类似的用例,希望看到您的解决方案。