如何在没有<%=的情况下输出sinatra中的变量

时间:2017-04-17 10:43:53

标签: ruby sinatra erb

在Rails中,存在诸如" concat"输出< %%>内的变量阻止erb remplates。我可以在Sinatra中使用哪个帮助程序执行相同的操作,而不使用<%=%>块?我的意思是,像

<%
#code
concat "This should be rendered in HTML, not in console"
#code
%>

EDIT 视图中的代码是这样的(是的,逻辑太多,但这是我在Ruby中的第一个应用程序):

<% Dir.glob('uploaded/*').select do |entry| %>
    <div class="singleFileItem">
    <% if File.directory? entry %>
        <img src="images/folder.png">
    <% else 
       case entry.to_s.split(".")[1]
        when "doc","docx" %>
            <img class="pictogram" src='images/word.png'>
        <% when "xls","xlsx" %>
            <img class="pictogram" src='images/excel.png'>
        <% when "pdf" %>
            <img class="pictogram" src='images/pdf.png'>
        <% when "png", "jpg", "jpeg" %>
            <img class="pictogram" class="imageRaw" src="<%= entry.to_s %>">
        <% else %>
        <% end
       end %>
       <br>
       <span class="subFileText">
        <%= entry.to_s.split("/")[1][0..14] %>...
       </span>
    </div>
<% end %>

1 个答案:

答案 0 :(得分:1)

谢谢,伙计们,我终于找到了它。 我用

扩展了app.rb文件
set :erb, :outvar => '@output_buffer'
def concat(text)
    @output_buffer << text
end

它有效。只需输入.erb视图

即可
<% concat "Text that should be added to render" %>

你们都完成了。希望,这对有类似问题的人有帮助