views:

134

answers:

1

It seems that inside of HAML's :javascript filter, no Ruby code is allowed, not even a comment.

So this is NOT allowed:

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

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

(somebody said there is not way to hide comment like that inside a :javascript filter. Is that true?

but it seems the only thing allowed is

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

only this #{ } is allowed. Nothing else that is Ruby is allowed?

+2  A: 

As I said on your other question, filters are (almost) entirely parsed separately from Haml. The only exception to this is #{}: for filters that just transform static text (that is, text that doesn't interact with the Ruby environment at all, so most filters other than :ruby and :erb), Haml adds this as a handy way of adding a Ruby value.

If you're looking for more complex Ruby integration with your text, filters are not the place to go. They're meant to be handy, not the be-all end-all solution to, say, putting JS in your template.

nex3
interesting... maybe it is for speed... so the %script tag allows for more Ruby inside... couldn't there be a :javascript_ruby filter that allows for more Ruby expression inside?
動靜能量