如果为零则不显示计数

时间:2013-06-25 14:57:15

标签: ruby-on-rails ruby ruby-on-rails-3

我制作了一个简单的网站,照片可以附在条目上。 在照片中,您可以看到我试图显示每个条目有多少张照片(蓝色)

enter image description here

但如果没有附加图像,我不希望Rails显示0。这是我的代码:

<span id="anzahl"><%= treatment.paintings.count  %></span>

4 个答案:

答案 0 :(得分:2)

您可以按照以下方式修改代码

<span id="anzahl">
   <% treatment_paintings_count = treatment.paintings.count %>
   <%= treatment_paintings_count unless treatment_paintings_count == 0 %>
</span>

答案 1 :(得分:2)

首先,在模型中使用计数器缓存。您现在使用的方式不是一个好习惯,因为它会生成太多的SQL查询。为了避免这种情况:

添加迁移:

self.up
 add_column :treatment, :paintings_count, :integer, :default => 0

 Treatment.reset_column_information
 Treatment.find_each do |u|
   Treatment.reset_counters u.id, :paintings
 end
end

绘画模型的变化:

  belongs_to :treatment, counter_cache: true

然后在视图中:

<span id="anzahl"><%= treatment.paintings_count if treatment.paintings_count > 0 %></span>

答案 2 :(得分:1)

您可以检查计数以确定是否应显示

<span id="anzahl">
  <%= treatment.paintings.count if treatment.paintings.count > 0 %>
</span>

答案 3 :(得分:1)

treatment.paintings.count.tap{|count| break (count unless count.zero?)}