【问题标题】:Having issues returning value of instance variables from class从类返回实例变量的值时遇到问题
【发布时间】:2013-04-04 01:19:03
【问题描述】:

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

【问题讨论】:

    标签: ruby ruby-on-rails-3.2


    【解决方案1】:

    使用 self 来引用成员变量。

    class HelperTest
      attr_accessor :actual_effort
    
      def setActualEffort(eff)
        self.actual_effort = eff
    
        #puts actual_effort
      end
    end
    

    【讨论】:

      【解决方案2】:

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

      def setActualEffort(eff)
        @actual_effort = eff
      
        #puts actual_effort
      end
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-19
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多