2010-06-04 5 views
6

Il semble qu'à l'intérieur du filtre :javascript de HAML, aucun code Ruby n'est autorisé , pas même un commentaire.Quel type de Ruby/Erb est autorisé dans le filtre javascript de HAML?

Donc, ce n'est pas autorisé.

:javascript 
    - 1.upto(10) do |i| 

:javascript 
    -# just a comment not to show to public 

(quelqu'un a dit qu'il n'y a pas moyen de cacher des commentaires comme ça dans un filtre :javascript Est-ce vrai

, mais il semble que la seule chose autorisée? est

:javascript 
    $('#aDiv').html('#{a_ruby_variable}'); 

que ce # {} est autorisé. Rien d'autre que Ruby est autorisé?

Répondre

7

Comme je l'ai dit sur votre autre question, les filtres sont (presque) entièrement analysés séparément de Haml. La seule exception est #{}: pour les filtres qui transforment simplement du texte statique (c'est-à-dire du texte qui n'interagit pas du tout avec l'environnement Ruby, donc la plupart des filtres autres que :ruby et :erb), Haml ajoute ceci comme un moyen pratique de ajouter une valeur Ruby.

Si vous recherchez une intégration Ruby plus complexe avec votre texte, les filtres ne sont pas faits pour vous. Ils sont destinés à être utiles, pas la solution finale à tous, par exemple, mettre JS dans votre modèle.

+0

intéressant ... peut-être que c'est pour la vitesse ... donc la balise script% permet plus de Ruby à l'intérieur ... ne pourrait-il y avoir un filtre: javascript_ruby qui permet plus d'expression Ruby à l'intérieur? –