如何循环使用Haml javascript标记中的ruby变量?

如何循环使用Haml javascript标记中的ruby变量?,javascript,ruby,loops,haml,Javascript,Ruby,Loops,Haml,如何循环使用Haml javascript标记中的ruby变量?我有一个@reviews的集合需要循环浏览。如何在javascript标记中循环遍历此集合 - content_for :javascript do = javascript_include_tag "jquery.expander" :javascript - @reviews.each do |review| $("#share#{review.id}").li

如何循环使用Haml javascript标记中的ruby变量?我有一个@reviews的集合需要循环浏览。如何在javascript标记中循环遍历此集合

  - content_for :javascript do

      = javascript_include_tag "jquery.expander"
        :javascript
        - @reviews.each do |review|
         $("#share#{review.id}").live('click', function() {
            FB.ui(
              {
                method: 'feed',
                name: '#{@product.name}',
                link: '#{@product.page_url(@locale)}',
                picture: '#{@product.image_url(@locale)}',
                caption: 'Dell Social Shop',
                description: '#{@product.description}'
              },
              function(response) {
                if (response && response.post_id) {
                  alert('Post was published.');
                } else {
                  alert('Post was not published.');
                }
              }
            );
          });}

尝试将
-@reviews.each do | review |
部分放在
=javascript_include_标记“jquey.expander”
块的外部,而不是内部。现在,它可能被解释为javascript而不是Ruby,因为它缩进在
:javascript
行下。

我发现对于javascript代码,Erb模板比Haml模板更有效。所以我将循环体提取到一个.erb部分,并执行如下操作

= javascript_include_tag "jquery.expander"
= javascript_tag render(:partial => 'review.js.erb', :collection => @reviews)