所以我之前为erb编写了这段代码
<% 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'
});
导致以下错误
nil的未定义方法`url':NilClass
在这一行
</haml_silent><haml_block> {src: '#{p.url}'},
答案 0 :(得分:1)
试试这个
- if @posting.pictures.blank?
- else
:javascript
$("#slider-posting").vegas({
slides: [
#{
@posting.pictures.map { |p| "{src: '#{p.url}'}"}.join(',')
}
],
transition: 'slideLeft'
});
答案 1 :(得分:0)
您是否尝试在if语句后省略?,当您在代码中使用三元运算符时,通常会使用 ,因此请尝试省略该部分并重试。< / p>