2010-11-03 4 views
9

Je convertis mon application Rails2 fat pour courir sur Rails3. Après un long combat intense avec une armée de bugs et mes boss hurle, la page est rendue comme une chaîne html échappée. Donc, tous les divs, images, etc. sont écrits littéralement pour l'utilisateur.Rails 3 html indésirable s'échappant

Pour une raison quelconque cet appel d'une partielle rend une chaîne échappé

<%= render :partial => 'something_really_interesting' %> 

Comme tous Ruby on Rails application cette instruction n'est pas appelé beaucoup! Alors, comment est-ce que je traiterais tous ces appels pour ne pas rendre normalement pas comme une chaîne échappée?

Répondre

18

Utilisez <%= raw bla %> dans le fichier partiel.

Rails 3 fait automatiquement tout en sécurité. Vous devez mettre raw pour échapper au comportement. Cela signifie également que vous n'avez pas besoin d'utiliser la méthode h() pour rendre votre chaîne plus sûre.

+0

+1 pour les informations utiles –

+0

Cela m'a aidé, merci. Dans mon cas, je rends le partiel directement à partir d'un autre template, ainsi que d'un assistant qui est appelé par un template différent. En outre, mon partiel est un formulaire, donc je ne voulais pas appeler brut pour chaque sortie de chaîne. Ça marche! – Docunext