<%=

2017-04-17 1 views
1

を使用せずにsinatraに変数を出力する方法Railsには、erb remplatesの< %%>ブロック内に変数を出力するための "concat"というヘルパーが存在します。 <%=%>ブロックを使用せずに、同じアクションを実行するためにSinatraでどのヘルパーを使用できますか?<%=

<% 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 /ファイル拡張子に依存しますが、これはSinatra/Railsの両方で同じように起こります。 haml宝石を追加して* .haml拡張テンプレートを使用すると、haml – Bohdan

+0

@Bohdanを使ってコンパイルされますが、これはhamlにすべてのレイアウトを変更する必要があることを示しています。それが1ページのアプリケーションの場合は、それが適していることができますが、それはより複雑なアプリケーションになりますか?あなたのコメントに基づいて、私の結論は、erb –

+0

@ whodini9のアイデアのために私の質問に答えられないと結論づけます。私の質問は明確ではありません、私はそれを言い換えようとします: erbでは、これらの '<% %> '変数の値を出力する方法は? –

答えて

1

おかげで、みんな:私は、

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

EDIT ビューのコードは次のようなものである(うん、あまりにも多くのロジックが、これはRubyで私の最初のアプリです)のようなものを意味します私はついにそれを見つけました。

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

でapp.rbファイルを拡張しました。 .erbビューを入力してください。

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

すべて完了しました。これは類似した質問のある人に役立ちます。