Whats the quickest way to see the number of entries in my database? I'd like to see the number of posts in my posts/index view.
Say I have a Post model and a bunch of posts saved in my database. In Rails I could do something like this in a view file:
<h1><%= @posts.length %> Posts</h1>
or
<h1><%= @posts.size %> Posts</h1>
or
<h1><%= @posts.count %> Posts</h1>
What's the Phoenix Framework/Elixir equivalent?
If you've already loaded the posts in memory in your controller using Repo.all
, you can use length/1
to count the number of items in the list. This is equivalent to .length
in Ruby/Rails.
length(@posts)
If you want to run the count query in the database instead, you can do:
Repo.one(from p in Post, select: count("*"))
You can also add where:
filter to the query to restrict the posts to e.g. created by a specific user. This is equivalent to doing .count
in Rails.