【问题标题】:How to access old state values within datamapper observer?如何在 datamapper 观察者中访问旧状态值?
【发布时间】:2011-03-15 18:27:12
【问题描述】:

我正在使用 dm-observer 来观察我的 dm 模型,我需要根据模型中的状态变化执行一些操作。我发现@state 用于存储更新的状态值,但我无法弄清楚如何访问旧的状态值。在下面的示例中,我使用了“old_state”,但显然这不起作用。

class Adam
    include DataMapper::Resource

    property :id, Serial
    property :name, String
    property :state, Integer
end

class AdamObserver
    include DataMapper::Observer
    observe Adam

    before :update do
        if old_state == 1 && @state == 2
            #do something 
        end
    end
end 

【问题讨论】:

    标签: ruby model datamapper observers


    【解决方案1】:

    您可以通过由属性对象索引的#original_attributes 哈希访问原始值。所以代码可能是这样的:

    if original_attributes[properties[:state]] == 1 && state == 2
      # do something
    end
    

    【讨论】:

      猜你喜欢
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      相关资源
      最近更新 更多