2010-10-13 5 views
0

Existe-t-il un moyen de filtrer les liens postés dans un commentaire ou dans un formulaire? Le type de données de la colonne où le champ est stocké peut être du texte ou varchar. Je veux essentiellement enlever tout type d'URL intégrée dans le contenu.Filtrage des liens dans les rails

Répondre

1

Vous pouvez essayer strip_links. Des Rails docs:

strip_links('<a href="http://www.rubyonrails.org">Ruby on Rails</a>') 
# => Ruby on Rails 

strip_links('Please e-mail me at <a href="mailto:[email protected]">[email protected]</a>.') 
# => Please e-mail me at [email protected] 

strip_links('Blog: <a href="http://www.myblog.com/" class="nav" target=\"_blank\">Visit</a>.') 
# => Blog: Visit 

Il y a aussi un strip_tags qui supprime toutes les balises HTML d'une chaîne.

Cependant, ces fonctions ne seront pas disponibles dans votre modèle; seulement dans vos opinions. Pour autant que je sache, il n'y a pas de méthodes intégrées pour accomplir cela à partir du modèle. Si vous avez besoin de le faire dans la vue, vous pouvez essayer d'étendre le modèle avec les classes ActiveView pertinentes. Sinon, il devrait être assez facile de construire une expression régulière pour supprimer les liens. En plus des strip_links et strip_tags déjà mentionnés, il y a un certain nombre de text helpers utiles dans ActionView.

0

Questions connexes