2016-08-08 6 views
0

私はレールに新たなんだnilのRailsのある画像に条件を適用します。は <p></p>は、私は私のインデックスページに私に3最新<code>articles</code>を与えるループを持っている...ので、私のコードはおそらく醜いあるのみ4

私の記事に画像がない場合はと言う条件を追加しました。これにはアンブラッシュの画像を送ってください。

問題は3枚の画像のうち2枚が存在しても3枚の画像に条件を適用することです。無しの画像だけがアンシャープな画像を得たいと思っています。 どうすればいいですか?

<% @articles.last(3).in_groups_of(3, false).each do |group| %> 
    <div class="row"> 
     <% group.each do |article| %> 
     <% if article.image.exists? %> 
      <div class="col-xs-12 col-sm-4"> 
      <div class="card"> 
       <style media> 
       .card { background: linear-gradient(-225deg, rgba(30,30,30,0.6) 30%, rgba(46,46,46,0.5) 80%), url("<%= article.image.url(:medium) %>"); } 
       </style> 
       <img src="<%= article.user.image.url(:thumb) %>" alt="" class="avatar-small card-user"> 
       <div class="card-description"> 
       <a href="<%= articles_path(article.slug) %>"><h3><%= article.title %></h3></a> 
       <p><%= truncate(article.subtitle, length: 45, escape: false) %></p> 
       </div> 
      </div> 
      </div> 
    <% else %> 
      <div class="col-xs-12 col-sm-4"> 
      <div class="card"> 
       <style media> 
       .card { background: linear-gradient(-225deg, rgba(30,30,30,0.6) 30%, rgba(46,46,46,0.5) 80%), url("http://unsplash.it/1280/500/?random"); } 
       </style> 
       <img src="<%= article.user.image.url(:thumb) %>" alt="" class="avatar-small card-user"> 
       <div class="card-description"> 
       <a href="<%= articles_path(article.slug) %>"><h3><%= article.title %></h3></a> 
       <p><%= truncate(article.subtitle, length: 45, escape: false) %></p> 
       </div> 
      </div> 
      </div> 
     <% end %> 
    <% end %> 
    </div> 
<% end %> 

私のコントローラ:

class PagesController < ApplicationController 
    def index 
    @articles = Article.last(3) 
    end 
end 

おかげであなたの助けのためにたくさん!

+0

'article.image.exists? 'の代わりに' article.image.nil? 'を試してください –

+0

.nilに変更はありませんか? ..私はまだ3つのunsplash画像を持っていますが、一方の画像はnilではありません。 –

+0

イメージモデルの設定方法が不明な場合は、 'article.try(:image).try(:url)'を試してみてください。 – lusketeer

答えて

0

最終的にエラーが見つかりました。

<style media>が問題でした。

私は最終的にこれを行う:

<% @articles.last(3).in_groups_of(3, false).each do |group| %> 
    <div class="row"> 
     <% group.each do |article| %> 
      <div class="col-xs-12 col-sm-4"> 
       <a href="<%= articles_path(article.slug) %>"><div style="background: linear-gradient(-225deg, rgba(30,30,30,0.6) 30%, rgba(46,46,46,0.5) 80%), url('<%= article.image.url(:thumb) %>');" class="card"> 
       <img src="<%= article.user.image.url(:thumb) %>" alt="" class="avatar-small card-user"> 
       <div class="card-description"> 
       <h3><%= article.title %></h3> 
       <p><%= truncate(article.soustitre, length: 45, escape: false) %></p> 
       </div> 
       </div> 
      </div></a> 
     <% end %> 
    </div> 
    <% end %> 
は今3つの最新の記事は、私のインデックスページ上に表示されます。 私はpaperclipでデフォルト画像を追加し、条件 if elseを取り消しました。

関連する問題

 関連する問題