-5

Not sure what am I doing wrong here or missing.

avar = 'test'
test_bvar = 'passed'
finalanswer = send "#{avar}_bvar"
puts " #{finalanswer}"

thanks,

Jordan Running
  • 102,619
  • 17
  • 182
  • 182
Peter
  • 1

2 Answers2

1

The send method is used to call a method by name programmatically. Since your test_bvar is not a method but a local variable, you need to refactor it like this:

def test_bvar
  "passed"
end

avar = "test"
finalanswer = send "#{avar}_bvar"
puts " #{finalanswer}"

Then you will reach your aim.

sawa
  • 165,429
  • 45
  • 277
  • 381
Mack94
  • 91
  • 7
0

You are defining test_bvar as a local variable:

test_bvar = 'passed'

and you're trying to call it like a method:

send "test_bvar"

If you want to make this a method, do as @Mack94's answer suggests.

sawa
  • 165,429
  • 45
  • 277
  • 381
MilesStanfield
  • 4,571
  • 1
  • 21
  • 32