有问题从类返回实例变量的值

时间:2013-04-03 17:13:10

标签: ruby ruby-on-rails-3.2

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

模型类

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

2 个答案:

答案 0 :(得分:2)

使用self引用成员变量。

class HelperTest
  attr_accessor :actual_effort

  def setActualEffort(eff)
    self.actual_effort = eff

    #puts actual_effort
  end
end

答案 1 :(得分:1)

setActualEffort方法中的

actual_effort是一个局部变量。您想要一个实例变量。那是

def setActualEffort(eff)
  @actual_effort = eff

  #puts actual_effort
end

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