2017-04-17 63 views
1

的情況下輸出sinatra中的變量在存在用於erb remplates的<%%塊內部存在用於輸出變量的「concat」之類的幫助器。我可以在Sinatra中使用哪個幫手執行相同的操作,而不使用<%=%>塊?我的意思是,像如何在沒有<%=

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

編輯 視圖中的代碼是這樣的(是的,太多的邏輯,但是這是我在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 %> 
+0

視圖的呈現取決於您使用的gem/file擴展名,這在兩個Sinatra/Rails中都以相同的方式發生。如果添加haml gem並使用* .haml擴展模板將使用haml編譯 – Bohdan

+0

@Bohdan,謝謝,但是這表明我應該將所有佈局更改爲haml。如果它是一個頁面的應用程序,可以適合,但如果它會更復雜的應用程序?根據你的評論,我的結論是,我的問題只是不能回答,因爲我的想法在erb –

+0

@ whodini9,也許,我的問題並不清楚,我會嘗試重寫它: 在erb中,這些'<% %> '如何輸出變量的值? –

回答

1

謝謝,夥計們,我終於找到了它。 我已經延長了app.rb文件,

set :erb, :outvar => '@output_buffer' 
def concat(text) 
    @output_buffer << text 
end 

和它的作品。只需輸入.erb視圖

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

你們都完成了。希望,這將有助於有類似問題的人