2016-04-17 8 views
18

データベースのエントリ数を確認する最も簡単な方法は何ですか?私は私の投稿/インデックスビューの投稿の数を見たいのですが。Ectoリポジトリのエントリ数をカウント

私のポストモデルと私のデータベースに保存されたたくさんのポストがあります。 Railsでは、私はビューファイルでこのような何かを行うことができます:

<h1><%= @posts.length %> Posts</h1> 

または

<h1><%= @posts.size %> Posts</h1> 

または

<h1><%= @posts.count %> Posts</h1> 

をフェニックスのフレームワーク/エリクシールものは何ですか?

答えて

23

すでにRepo.allを使用して、コントローラ内のメモリに記事を読み込んだ場合は、リスト内の項目数をカウントするlength/1を使用することができます。これはRuby/Railsの.lengthに相当します。

length(@posts) 

あなたの代わりに、データベース内のカウントクエリを実行したい場合は、あなたが行うことができます:また、クエリにwhere:フィルタを追加することができます

Repo.one(from p in Post, select: count("*")) 

は、例えばへの投稿を制限します特定のユーザーによって作成されます。これは、Railsで .countを実行するのと同じです。

53

Dogbertで提供されているオプションは両方とも正しいので、Ecto 1.xに使用する必要があります。

エクト2.0では、あなたは、この1つはまた、構成可能なクエリを構築することができますRepo.aggregate/4

Repo.aggregate(Post, :count, :id) 
+4

使用することができます –