如何从ActiveRecord实例中删除状态机。对于ex
Class X < ActiveRecord::Base
state_machine
## rest of code
end
x = X.new
x.state_machines = nil ##something like this
现在,我想在不接触现有代码的情况下删除X的一些特定实例的state_machine。
我们能做到吗??我使用的是pluginaweek状态机。
发布于 2014-12-12 11:54:06
这种方法似乎很奇怪,因为我们认为,同样的问题,你没有告诉我们,可以用更令人愉快的方式解决。但是,您可以在运行时删除特定实例的getter #state_machine
(如果需要,也可以删除setter )。示例如下:
class A
def a
end
end
a1 = A.new
a2 = A.new
a1.a # => nil
a2.a # => nil
a1.instance_eval { undef :a } # => nil
a1.a # => NoMethodError: undefined method `a' for #<A:0x80684f4>
a2.a # => nil
使用相同的方法,您可以在类的实例中重新定义任何实例方法。
https://stackoverflow.com/questions/27442360
复制相似问题