Как вы перебираете переменную ruby ​​в теге Haml javascript? - PullRequest
1 голос
/ 16 сентября 2011

Как вы перебираете переменную ruby ​​в теге Haml javascript?У меня есть коллекция @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.');
                }
              }
            );
          });}

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Я обнаружил, что для Javascript-кода шаблоны Erb работают лучше, чем шаблоны Haml. Так что я бы извлек тело цикла в частичку .erb и сделал что-то вроде

= javascript_include_tag "jquery.expander"
= javascript_tag render(:partial => 'review.js.erb', :collection => @reviews)
1 голос
/ 16 сентября 2011

Попробуйте поместить часть - @reviews.each do |review| вне блока = javascript_include_tag "jquey.expander", а не внутри него.Там, где он сейчас находится, его, вероятно, интерпретируют как javascript вместо Ruby, поскольку он имеет отступ под строкой :javascript.

...