Вы можете определить test
следующим образом:
def test(two: 'foo', other: '')
puts two + other
end
Вызов test
будет иметь тот же эффект, что и ваша функция, но вызов test(other: 'bar')
даст вам желаемый результат:
test
#-> 'food'
test(other: 'bar')
#-> 'foobar'
Вы также можете сделать это
def test(two: '')
puts 'foo' + two
end
Затем вы можете сделать это (ближе к вашей попытке):
test(two: 'bar')
#-> 'foobar'
Но вы не можете изменить переменные внутриметод извне, просто вызывая их по имени в параметрах.