Ruby - 重置和属性与ActiveRecord

时间:2015-05-13 14:36:21

标签: ruby

我有一个名为name的属性,其中包含attr_accessor,我在initialize中设置了它的值:

def initialize
  @name = #code
end

我需要实现一个重置方法来重置@name的值。我能想到的唯一方法是使用我在initialize中使用的完全相同的代码。我试图找到一种方法,但我所见过的每种方法(例如reload)仅适用于与ActiveRecord相关联的对象。有什么办法可以避免在两种方法中重复使用相同的代码吗?

1 个答案:

答案 0 :(得分:0)

没有。你需要编写代码。 Ruby没有“重置”属性的概念。

#code是什么,您可以将其移至方法并在initialize中调用该方法,然后定义执行相同操作的reset

class MyClass

  def initialize
    reset
  end

  def reset
    reset_name
  end

  private

  def reset_name
    @name = #code
  end
end