-2

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

在此处输入图像描述

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

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

4 回答 4

2

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

<span id="anzahl">
   <% treatment_paintings_count = treatment.paintings.count %>
   <%= treatment_paintings_count unless treatment_paintings_count == 0 %>
</span>
于 2013-06-25T15:01:38.183 回答
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>
于 2013-06-25T15:15:21.760 回答
1

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

<span id="anzahl">
  <%= treatment.paintings.count if treatment.paintings.count > 0 %>
</span>
于 2013-06-25T14:59:10.987 回答
1
treatment.paintings.count.tap{|count| break (count unless count.zero?)}
于 2013-06-25T15:00:20.657 回答