Когда вы создаете сообщение, вы делаете что-то вроде:
email = TMail::Mail.new
Чтобы прикрепить файл, вы делаете что-то вроде:
attachment = TMail::Mail.new
attachment.body = Base64.encode64(attachment_content.to_s)
attachment.transfer_encoding = "Base64"
attachment['Content-Disposition'] = "attachment; filename=#{attachment_filename}"
email.parts << attachment
Это следующая последняя строка, которая должна сделать трюк.