2011-07-27 4 views
0

私のレールアプリケーションでは、表示されている添付ファイルのセットがあります。しかし、私はメインの添付ファイルを除いて、それらのすべてをループしたいと思います。とにかくループにifステートメントを追加するためのレール

<% if @asset.attachments.size > 0 %> 
    <table> 
     <tr> 
    <% @asset.attachments.each_with_index do |attachment, i| %> 
    <% if i%5 == 0 %> 
     </tr><tr> 
     <%end%> 
    <td style="width: 150px;" valign="bottom" align="center"> 
    <%= image_tag(attachment.attachment.url(:thumb)) if attachment.is_image? %> 
    <%= image_tag("/images/Excel.png") if attachment.is_excel? %> 
    <%= image_tag("/images/Word.png") if attachment.is_word?%> 
    <br /> 
    <%= link_to attachment.name.to_s,attachment.attachment.to_s %> 
    </td> 
    <%end%> 
    </tr> 
    </table> 
    <%end%> 

しかし、私はこのコード行にmain_image場合のようなものを追加したい:私のビューのコードは今ある!のことがが可能である場合

<% @asset.attachments.each_with_index do |attachment, i| %> 

は、私にはわかりません。

それはあなたがメインの添付ファイル

<% @asset.attachments.each_index do |attachment, i| %> 
    <% unless attachment.main? %> 
    ... 
    <% end %> 
<% end %> 

OR

<% @asset.attachments.each_index do |attachment, i| %> 
    <% if attachment.main? %> 
    <% next %> 
    <% else %> 
    ... 
    <% end %> 
<% end %> 

ORコントローラ内でその後

@attachments = @asset.attachments.where(:main => false) 

これを入れ、@attachmentsを反復をどう定義するかに依存し

+0

メイン画像でない添付ファイルを返しウルモデル。 http://stackoverflow.com/questions/6845650/rails-get-one-record-without-loopの継続。 – rubish

+0

@Rubish Guptaが答えでこれを入れてください、私は他のすべての方法は私に –

答えて

2

のこの答えは、あなたのメイン画像ではありません添付ファイルを返している、あなたのモデルに別の方法を追加this question

に答えるために、継続中です。サイドノートでは

scope :not_main_image, where(:main_image => false) 

、あなたはヘルパーメソッドにすべてこのロジックを移動する場合があります:あなたに続いて

def link_to_attachment attachment 
    html = "" 
    html += image_tag(attachment.attachment.url(:thumb)) if attachment.is_image? 
    html += image_tag("/images/Excel.png") if attachment.is_excel? 
    html += image_tag("/images/Word.png") if attachment.is_word? 
    html += "<br />" 
    html += link_to(attachment.name.to_s, attachment.attachment.to_s) 
    html.html_safe 
end 

<%= image_tag(attachment.attachment.url(:thumb)) if attachment.is_image? %> 
<%= image_tag("/images/Excel.png") if attachment.is_excel? %> 
<%= image_tag("/images/Word.png") if attachment.is_word?%> 
<br /> 
<%= link_to attachment.name.to_s,attachment.attachment.to_s> 

はあなたのようなヘルパーメソッドを作成して言いますあなたはそれを置き換えることができます:

<td style="width: 150px;" valign="bottom" align="center"> 
    <%= link_to_attachment attachment %> 
</td> 
+0

を増加させると考えているので、私は、最良の答えとして、それを受け入れるだろう、私はあなたに感謝し、このためのヘルパーメソッドについて考えたことはありません! –

+0

それは本当に機能 – klochner

+0

@klochnerよりもむしろ範囲でなければなりません、はいそれが良いだろう – rubish

2
 
<% @asset.attachments.each_with_index do |attachment, i| %> 
    <% next if attachment.main_image %> 

0

その代わり@asset.attachments

関連する問題