Je pense que votre meilleur pari est de mettre à jour les liens dans votre base de données pour tous se conformer à un format standard. Vous pouvez également ajouter une validation plus basique pour vous assurer que tous les liens correspondent à un format valide:
validates :link_to_idea, format: URI.regexp
Vous pouvez également exécuter un remblai sur la base de données qui vérifie les anciens liens pour vous assurer qu'ils correspondent à ce modèle et mettre à jour les ça ne marche pas. Utilisez-vous MySQL? De toute façon, la meilleure réponse est de ne pas essayer de rendre votre application restituant quelque chose d'ancien que l'utilisateur place, mais de nettoyer les données avant qu'elles ne pénètrent dans la base de données.
Si vous ne pouvez pas contrôler ce qui se passe dans la base de données, je rendrais simplement, en tant que texte, tout ce qui ne correspond pas à cette expression régulière et laisserais les utilisateurs les mettre dans leur propre navigateur.
peut-être simplement mettre à jour votre base de données et ajouter « http:// "si nécessaire? –
Je suggère de faire ce que @SergioTulentsev recommandé. https://stackoverflow.com/questions/7908598/add-https-to-url-if-its-not-there – AbM
Mais je ne permets pas de modifier la DB, seulement si je modifie mon code pour toujours, dans le moment d'enregistrer au lien, mettre le http ou https. Mais cela ne fonctionne que pour une seule option –