Ich versuche, die Summe aller Bewertungen zu einem Beitrag hinzuzufügen. Aber ich bekomme einen Fehler: ArithmeticError: bad argument in arithmetic expression
. Ich glaube, das ist, weil nicht alle Post
ratings
damit verbunden haben. Und dann wird es nicht sum
die Werte in diesen nicht vorhandenen Bewertungen sein.ArithmeticError bei Verwendung der Summe in einer zugeordneten Spalte
Wie würde ich die Bewertung auf 0
setzen, wenn keine ratings
mit einem post
in der Datenbank verknüpft ist?
Abfrage:
from post in Post,
left_join: rating in assoc(post, :ratings),
group_by: post.id,
select: %{post | rating: sum(rating.value)}
Schemen:
schema "posts" do
field :rating, :integer, virtual: true
has_many :ratings, MyApp.Rating
end
schema "ratings" do
field :value, :integer
belongs_to :post, MyApp.Post
end