-2

エントリに写真を添付できるシンプルな Web サイトを作成しました。写真では、各エントリが何枚の写真を持っているかを表示しようとしたことがわかります (青色)

ここに画像の説明を入力

0しかし、画像が添付されていない場合はRailsを表示したくありません。これが私のコードです:

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

4 に答える 4

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
treatment.paintings.count.tap{|count| break (count unless count.zero?)}
于 2013-06-25T15:00:20.657 に答える