1

我确信这是一个简单的问题,但它让我发疯了。我在模型类中有一个方法,actual_effort,它正在调用辅助类中的函数。辅助类中的函数正在设置一个实例变量,我应该能够在模型类中看到但不能。我使用控制台调试它,但仍然看不到它。我可以在辅助类中显示变量,并带有注释掉的 puts,这证明它正在被设置。

模型类

class WorkFlow < ActiveRecord::Base
  require 'helpertest'

  def actual_effort    
    v1 = HelperTest.new()
    v1.setActualEffort(1000)
    v1.actual_effort
  end 
end

助手类

class HelperTest
  attr_accessor :actual_effort

  def setActualEffort(eff)
    actual_effort = eff

    #puts actual_effort
  end
end
4

2 回答 2

2

使用 self 来引用成员变量。

class HelperTest
  attr_accessor :actual_effort

  def setActualEffort(eff)
    self.actual_effort = eff

    #puts actual_effort
  end
end
于 2013-04-03T17:18:45.690 回答
1

setActualEffort 方法中的 actual_effort 是一个局部变量。您需要一个实例变量。那是

def setActualEffort(eff)
  @actual_effort = eff

  #puts actual_effort
end

注意:这相当于 self.actual_effort = eff

于 2013-04-03T17:19:03.597 回答