2016-01-27 71 views
0

所以我寫了這個代碼ERB前一段時間在線變量HAML

<% if @posting.pictures.blank? %> 
<% else %> 
    <script> 
     $("#slider-posting").vegas({ 
      slides: [ 
        <%- @posting.pictures.each do |p| %> 
         {src: '<%=p.url%>'}, 
        <%- end %> 
      ], 
      transition: 'slideLeft' 
     }); 
    </script> 
<% end %> 

我有一個有點麻煩,將其轉換爲HAML。

試圖基於http://html2haml.herokuapp.com/

- if @posting.pictures.blank? 
- else 
    :javascript 
    $("#slider-posting").vegas({ 
       slides: [ 
    <haml_silent>     @posting.pictures.each do |p| 
    </haml_silent><haml_block>      {src: '#{p.url}'}, 
    </haml_block>   ], 
       transition: 'slideLeft' 
      }); 

轉換導致以下錯誤

未定義的方法`網址」的零:在這條線NilClass

</haml_silent><haml_block>      {src: '#{p.url}'}, 
+0

嘗試http://html2haml.herokuapp.com/ – chaitanya

+0

我沒有,我不相信的轉換就太清楚不過。編輯帖子以顯示結果+測試 – Kishe

+0

這可能有所幫助:http://stackoverflow.com/questions/2640863/ruby-methods-within-javascript-within-haml –

回答

1

試試這個

- if @posting.pictures.blank? 
- else 
    :javascript 
    $("#slider-posting").vegas({ 
     slides: [ 
     #{ 
      @posting.pictures.map { |p| "{src: '#{p.url}'}"}.join(',') 
     } 
     ], 
     transition: 'slideLeft' 
    }); 
+0

我在嘗試使用代碼時遇到此問題: 未定義的方法' - @'代表# Kishe

+0

我已更新代碼。刪除' - '在' - @發佈' –

+0

它的工作原理!非常感謝 :) – Kishe

0

有無您嘗試省略 if語句後,通常在代碼中使用三元運算符時使用,所以請嘗試省略該部分並重試。

+0

那?是方法名稱'空白'的一部分? –