user2241394
user2241394

Reputation: 23

Having issues returning value of instance variables from class

I'm sure this is a simple question but it's driving me nuts. I have a method in a model class, actual_effort, which is calling a function in a helper class. The function in the helper class is setting an instance variable which I should be able to see back in the model class but can't. I debug it using the console and still can't see it. I can display the variable in the helper class, with the commented out puts, and this proves it's being set.

Model class

class WorkFlow < ActiveRecord::Base
  require 'helpertest'

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

Helper class

class HelperTest
  attr_accessor :actual_effort

  def setActualEffort(eff)
    actual_effort = eff

    #puts actual_effort
  end
end

Upvotes: 1

Views: 40

Answers (2)

boulder
boulder

Reputation: 3266

actual_effort in your setActualEffort method is a local variable. You want a instance variable instead. That is

def setActualEffort(eff)
  @actual_effort = eff

  #puts actual_effort
end

Note: This is equivalent to self.actual_effort = eff

Upvotes: 1

Use self to reference a member variables.

class HelperTest
  attr_accessor :actual_effort

  def setActualEffort(eff)
    self.actual_effort = eff

    #puts actual_effort
  end
end

Upvotes: 2

Related Questions