【问题标题】:How do I display erb code inside haml img src?如何在 haml img src 中显示 erb 代码?
【发布时间】:2013-04-12 08:56:06
【问题描述】:
<% 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 文件中获取的。我只是不知道如何在img.client-logo src 上输出 "。 所以这个过程是循环的。

如果我更换 %img.client-logo{:src => "", :alt => ""}/ 使用普通的 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 %>

【问题讨论】:

    标签: ruby haml erb middleman


    【解决方案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' />
    

    【讨论】:

    • 未定义的局部变量或方法'i'
    • @clydealegro 对不起,我不明白你的问题。您期望的 HTML 输出是什么? data.programs.logo_url 的内容是什么?如果在顶部循环中有用作索引,i 怎么没有定义?
    • 应该输出一个 url 字符串。如果它像这样 "> 就可以了,我只是不明白为什么它不能以 haml 格式工作
    • &lt;img src="&lt;%= data.programs.logo_url[i] %&gt;"&gt; 应该等同于 %img{:src =&gt; data.programs.logo_url[i]}= image_tag data.programs.logo_url[i]。用可能的警告编辑了答案。
    • 如果它使用这种格式 "> 所以我认为检索变量 i 没有问题.如果是haml格式,我需要做一些插值吗?
    猜你喜欢
    • 2015-09-10
    • 1970-01-01
    • 2022-12-20
    • 2023-03-09
    • 2013-01-31
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2021-04-27
    相关资源
    最近更新 更多