如何在haml img src中显示erb代码?

时间:2013-04-19 03:08:24

标签: ruby haml erb middleman

<% data.programs.client_name.each_with_index do |c, i| %>
   %article     
      .content 
         %header 
            .logo-wrap
               %img.client-logo{:src => "<%= data.programs.logo_url[i] %>", :alt => ""}/ 
        %div 
               %a{:href => ""} Program Title
               %p <%= c %>
        %p Some text description 
         %img.progam-photo{:src => "some_img_url", :alt => ""}/
<% end %>

我正在使用Middleman本地数据功能,因此这里的数据来自yaml文件。我只是无法弄清楚如何输出&lt;%= data.programs.logo_url [i]%&gt; “在img.client-logo src上。 所以这个过程正在循环中。

如果我要替换     %img.client-logo {:src =&gt; “&lt;%= data.programs.logo_url [i]%&gt;”,:alt =&gt; “”} / 使用普通的img标签,我可以在src上正确输出。

这有效:

<% data.programs.client_name.each_with_index do |c, i| %>       
%article        
        .content 
        %header 
        .logo-wrap                  
            <img class="client-logo" src="<%= data.programs.logo_url[i] %>" />      
    %div 
        %a{:href => ""} Program Title
        %p <%= c %>
    %p <%= data.programs.program_description[i] %>
    <img class="program-photo" src="<%= data.programs.img_url[i] %>" />     
<% end %>

1 个答案:

答案 0 :(得分:1)

%img.client-logo{:src => data.programs.logo_url[i], :alt => ""}/ 

可能的警告:

  • data.programs.client_name是一个数组?
  • 是您正确认可的代码吗?
  • 如果您将%img标记替换为= data.programs.logo_url[i],那么您有链接吗?

haml标签没有任何问题。这证明了这一点:

[fotanus@thing ~]$ cat a.haml 
- a = []
- a << 'image/path'
%img{:src => a[0]}

[fotanus@thing ~]$ haml a.haml 
<img src='image/path' />