Убедитесь, что methodName является символом, а не строкой (например, methodName.to_sym)
Невозможно передать хеш в send, вам нужен массив, и ключи / значения в нем не в определенном порядке, но аргументы метода должны быть, поэтому вам нужен какой-то разумный способ получить значения в правильном порядке.
Тогда, я думаю, вам нужно использовать оператор splat (*) для передачи этого массива для отправки.
methodName = 'center'
params = {'param1' => 20, 'param2' => '_'}.sort.collect{|k,v| v}
a = "This is a string"
a.send(methodName.to_sym, *params)
=> "__This is a string__"
Нечто подобное.