8

私のアプリケーションでは@apps、アプリの名前、環境などを含むレコードで ActiveRecord によってロードされるという名前の配列があります。

現在@apps.count、配列内のアプリの数を取得するために使用していますが、配列内のアプリケーションの数をカウントするのに問題がありますenvironment = 0

試してみ@apps.count(0)ましたが、各レコードに複数のフィールドがあるため、うまくいきませんでした。

私も何かを試しまし@apps.count{ |environment| environment = 0}たが、何も起こりませんでした。

助言がありますか?

4

3 に答える 3

1

reduceここではORを使用each_with_objectします。

ドキュメントを減らす:

@apps.reduce(Hash.new(0)) do |counts, app| 
  counts[app.environment] += 1
  counts
end

each_with_object ドキュメント:

@apps.each_with_object(Hash.new(0)) do |app, counts| 
  counts[app.environment] += 1
end

クエリを実行できる場合は、SQL を使用します

App.group(:environment).count環境としてのキーとカウントとしての値を持つハッシュを返します。

于 2017-05-04T21:07:03.787 に答える