bot.send_message(chat_id: saved_chat_id, text: app_text)
вы передаете hash {chat_id:, text:}, код гема вызывает на нем метод .text и валится потому что у хеша такого метода нет. Сигнатура метода send_message хочет увидеть reply в качестве аргумента, что можно увидеть в README: # reply
message.reply do |reply|
reply.text = "homer please clean the garage"
reply.send_with(bot)
end
# or
reply = message.reply
reply.text = "i'll do it after going to moe's"
bot.send_message(reply)